SEO » SEM » SMO » Programming & Code

Florida Search Engine Optimization

How to Remove the SlideDeck Attribution Link

So you want to remove the SlideDeck attribution link eh? I want to get one thing perfectly clear. I think the work the folks over at Digital Telepathy did on SlideDeck is nothing less than amazing … It’s for just that reason that I’m starting off this post with what I feel is an obligatory link to the smokin’ hot SlideDeck developers. However, I don’t think  the little attribution link ‘bug’ they created looks very professional. Now, SlideDeck offers the  option to remove the link for the upgraded paid version … which is cool … yet, (there it is … ) they don’t actually have the right to force users to keep the attribution there. With all due respect to WordPress plug-in developers, it’s a violation of the WordPress licensing to make plug-ins that users can’t modify at will … See WordPress plug-in licensing for more info on that  … So … you’ve probably skipped the first two paragraphs to get to this point and if you did (As I would have …) you just want to the info … so here it is. First, you need to have either a text editor or an IDE to do the heavy lifting. I’m a code freak so I like using EditPad Pro for my most of my code work but you could just as easily do this in notepad. You are also going to need to access two different web sites to work with the obfuscated JavaScript code … First we’ll be visiting jsbeautifier.org to decompress the file and then Dean Edwards’ JavaScript Packer to wrap the code back up to our .pack.js file … What we need to do next is to go in to the slidedeck.jquery.lite.pack.js file where the attribution function is. The code we’re searching for starts around line 34 … you won’t be able to find the function in the compressed code though … so just select the code and copy it to the clipboard (CTRL+C) …

eval((function(s){var a,c,e,i,j,o="",r,t="@^`~ ";for(i=0;i=0;j--){s[i][0]=s[i][0].split(r.charAt(j)).join(a[j]);}o+=s[i][0];}var p=7665;var x=function(r){var c,p,s,l='abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789';if(r<63)c=l.charAt(r);else{r-=63;p=Math.floor(r/63);s=r%63;c=l.charAt(p)+l.charAt(s)}return c;};a=o.substr(p).split(':');r=a[1].split('?');a=a[0].split('?');o=o.substr(0,p);if(!''.replace(/^/,String)){var z={};for(i=0;i<210;i++){var y=x(i);z[y]=r[i]||y}t=/\b\w\w?\b/g;y=function(a){return z[a]||a};o=o.replace(t,y);}else{for(j=a[a.length-1]-1;j>=0;j--){if(r[j])o=o.replace(new RegExp('\b'+(j<63?c.charAt(j):c.charAt((j-63)/63)+c.charAt((j-63)%63))+'\b','g'),r[j])}}return o.replace(/ /g,"\"");})([["String.prototype.z=P( v=Y;aA v.split(  ).reverse().cr(   } a2;(P($){a2=P(d,e c=Y,d=$(d) f= 1.2.1 ;Y.O={a_:500,aC:'swing~Z:1,V:R,as:R,aX:R,bZ:R,bb:Z,a8:5000,T:Z,aV:Z};Y.S={bi:'bi',U:'U',ck:'ck~s:'as~G:'aG',bJ:'bJ',V:'V',bS:'bS',vertical: lacitreVsedils ,aP:'aP~D:'aD'};Y.W=1;Y 6=d;Y i=d T('dt' Y k=d T('dd' Y.controlTo=1;Y.session=[];Y.disabledSlides=[];Y d=Z;Y 9=Z h=navigator.userAgent p( Y.Q={aN: N/ aM: M/ bR: M\\/2/ bL: M\\/3\\.0/ ay: y/ cj:( y 6/)&&! y 7|8/) msie7: y 7/ msie8: y 8/ ar:( y/)&& N"+
"/) bk:h h(/bk/ a5:( 5/)&&! N/))?R:Z}@b cb Y.Q Y.Q[b] Q._this=b;}} Y.Q N N\\/ Q M M\\/ Q y y  Q k w\\/ Q 5 w\\/ ];}X j l m,n,o,p q=P(U `y&&!`r E=U  ci-dnuorgkcab ) F=E; F== transparent ){E= #ffffff ^ F h('\\bg') F._<7 t= \\bg +F z(1 1 2 2 3 3,1 E=t;}}}E=E.replace( \\bg ,   aB={r:E z(0,2),g:E z(2,2),b:E z(4,2)} G= \\bg  H= FEDCBA09876543210 @k cb aB){ =aF G(0,(ae( ,cu)-1)  =H.cg(( - %cu)/cu)+H.cg( %cu G+= ;}U 3('\\bf'+c.S s) {'cd': =ci(amorhc )1=bP(bC E 7:ce +G+'\\x29',backgroundColor:G} }} u={b1:"+
" guB_kceDedilS +(aF.round(aF.ca()*100000000)),br: :thgieh etulosba:noitisop +13+ :a0 xp +130+ ac! 00002:xedni-z 0:aE 1:yticapo elbisiv:ytilibisiv neddih:wolfrevo 0:nigram kcolb:yalpsid xp ,an:130,am:13} v=P( !ag.getElementById(u 1) E=ag u('\\x41' E 1=u 1;E.href= gubDS=ngiapmac_mtu&kniL=muidem_mtu&resUetiL=ecruos_mtu?/moc H.www//:ptth ;E 8= _blank  F=ag u('IMG' F.src=(ag.location.protocol== cm: ? cm: : http: )+ /0dffa540f75499d537c9385e34013f6848585886/moc H.www// +f+ /lite ;F lt= ;edart&bI yb de"+
"rewoP ;F n=u n;F m=u m;F order= \\x30 ;E Y(F u H=(d o() H+d m()+5 u j=d o() j+d n()-u n s=ag u('STYLE' s.type= text/at  G=K1+'{aH:'+u H+'aL;aj:'+u j+'aL;'+u r+'\\x7d'+K1+  0:bz 0:pot{gmi  +u r+'\\x7d'; s A){s A.cssText=G^s Y(ag e(G) }$('head') x(s  aF.ca()<0.5){$(ag.ct).prepend(E }aI{$(ag.ct) x(E }$(window).resize(P(){v( } }u H=(d o() H+d m()+5 u j=d o() j+d n()-u n;$(K1) {aH:u H aj:u j+ aL } } w=P(){bQ=P( c d===Z c.O V===Z&&c.W==c k._){c d=R^c D( }}};bs(bQ,c.O 8 } x=P( $ 0(d 'ax'),['ax','aQ','f"+
"ixed'])){d 'ax','relative' }d 'bO','cc' a1(X i=0;ii U=$(c i[i] }X F={aH:ae(E 'bj H'),b J bD E  O bu E  j bz E c)} G={aH a0-pot 6  J a0-bD 6  O a0-bu 6  j a0-bz 6 c)}@k cb G){G[k]=cl(G[k])?0:G[k];} i0 bq( aX  bh :al p~aK;av R:b5:  < || aV al p( aK;}@c D( aI{bq( aX  bh :al p~aK;av "+
"R:b5:  !=1|| aV al p( aK;}@c V( }}}   -2])  P);  ])  D) bb= w( c 9=R;}; y E=aF Y( ,aF G(1,E));aA E;}; z=P(E,F E=y(E); G=R; E<  G=Z;} H=[/c].cr('\\x20'); =E;c i t(H);c k t(H);d 3 .S.V) 2~  -2])  P);  ])  D);a1( i=0;i< ;i++  I=0` U= i]  J=$(c k[i]); i<   i==( -1) J  G)`U  G); V).cp( }I=i*n;}aI{I=i*n+o;}  T= I=(i- +1)*d n(  K={ba: a_,bw: aC};J h() o({aj:I an:c W+ aL },K)`q(U); U t('aj')!=I+ aL  U h() o({aj:I+ aL },{ba: a_,bw: aC}); V) h() o({aj:I+n+ aL },{ba: a_,bw: aC} }}v( ; A=P(E,"+ "F  G=E; E)=== b9  G={};G[E]=F;}a1( H cb G F=G[H];bq(H  a_ : aZ :F=parseFloat(F); cl(F)#aX : bZ : V : T : bb : aV : F)!== bn #aC : F)!== b9 #complete : before : F)!== P #as : F)!== bn   !$.isArray(F) ];}}aK;}c.O[H]=F;}}; B=P( l=d m~j=d n~d t('am',l+ aL );m=0;n=0 T!==R&&c i._>0 m= 0]) m~n= 0]).outerHeight( o=j-n*c i._ T= o=j;}p=aF.ceil(m/2 ; C  (c.Q k&& w< bc.5 )||c.Q.cj||c.Q R||c.Q L  bl  bl.cn)== P  bl.cn( rerolpxE tenrenI fo noisrev tnerruc a ro bU elbapac 3SSC ,nredom a ni egap siht weiv esael"+
"P  I yb detroppus ton si bU bew sihT^ }aA Z;} E a1( F cb E c.O[F]=E[F];}} c i._<1  T=R;}  T=  V=Z;} =aF Y( ,aF G(1, aZ)); d m()>0 B~x( aI{ G;G=setTimeout(P( B~ d m()>0 bm(G);B~x( },20 }; D  F;F=bs(P(  c 9 bm(F);E( },20 ;Y.loaded D(E };Y D  F=aF Y( ,( +1)) aV=   +1>  F=1;}}z(F,E };Y V  F=aF G(1,( -1)) aV=   -1<1 F= ;}}z(F,E };Y.cs=P(E,F @z(aF Y( ,aF G(1,E)),F };Y.setOption=P(E,F A(E,F };C(e ;$.fn U=P(d  e=[];a1( i=0;i1?e:e[0];};})(jQuery"+
");0?210:??self     ???options?function?browser?true?classes?hideSpines?spine?activeCorner?current?var?this?false?length ????addClass?transform?tnatropmi?pauseAutoPlay?parseInt?if?document?match?spines?left?slides?event?height?width?offset?preventDefault?typeof?chromeFrame?index?css?createElement?case",";af(c.O. .aa(c.S af(aq( ==R){ c.O. );} .a ('\\bf'+c ??????? + aL , c k._ av   af( ){  F=c.O[H );aA c; $(c i[ =P(E  c.Q  c.W .b )!= aT   U D .S. c d=R;  .z()  T!  (); X   ];}aK; ","#"],["?$sio'po&( substr tur'cP t t)n&n ?gn%da;Ma*activ,;=s righ^b.kEx /h m b m iou G4ut  ?e:un+f ed d cy< _w%*sc ll C   ^spe htdiJf8?Sl%eD zIn+x?webki^saf i d b?m fsn T XD?   Load du)  ?10? alT>^c.teT NFx2 x23 op EaddHope)/on4 <  lKolea'animat,LowOCas switch` set l RveC@ m b 72?eas g ?0px-f=`Shee^Rusewhe=? cisaB-hgir-fos8ciM- Alig'max?Qd# QD#S?Vic  9 30/@sNam  ta o$fYJnoi:gotoN  2~sGl c ren sw8b E ent Rz?m ?U UCF Ar)Z%W fV~splaZ+faul^d bV->t rH)ndom? W+'filtO~g8;+tail/h A^x5f? Yc?(e6?lGe NaN?http O r?"+
"bYck?shoJ@^jo ?goToKdZ16","?firefox Interva ?slide tion? ator ?st e? autoPlay ?append origin ?prev eck? ?re in egamI otto ext ar ?ged0 hild ed? s? l?is las t?  yle ?di ro edil ver id si  n? msi ra th? de  to ?t rea ?c sol or t ? p? cle el  ge ?p od  ab  g? w? ?bo er kce mo key  d ?h% lo y?",
"#$%&'()*+,-./48:;<=>EFGHJKOQRUVWYZ[]q{|}"]]));

Next we’re going to go over to  jsbeautifier.org to decompress the code … Go ahead and get there … There yet? Now … just select the entire text area, paste in the code and hit ‘Beautify…’

Then the code will turn from this …

Compressed JavaScript

To this …

Pretty JavaScript After you’ve decompressed the code … just copy and paste it back in to your editor. You should have around 600+ lines of JavaScript now … (See why the codes’ compressed now?) Then, simply do a search for ‘var u‘ and change all the var u code from Before: to what I have pasted in After:

Before:

var u = {
id: "guB_kceDedilS".z() + (Math.round(Math.random() * 100000000)),
styles: ":thgieh;tnatropmi! etulosba:noitisop".z() + 13 +
":htdiw;tnatropmi! xp".z() + 130 + "tnatropmi! 00002:xedni-z;tnatropmi!
0:gniddap;tnatropmi! 1:yticapo;tnatropmi! elbisiv:ytilibisiv;tnatropmi!
neddih:wolfrevo;tnatropmi! 0:nigram;tnatropmi! kcolb:yalpsid;tnatropmi! xp".z
(),
width: 130,
height: 13
};

After:

var u = {
            id: "guB_kceDedilS".z() + (Math.round(Math.random() * 100000000)),
            styles: ":thgieh;tnatropmi! etulosba:noitisop".z() + 13 +
 ":htdiw;tnatropmi! xp".z() + 130 + "tnatropmi! 00002:xedni-z;tnatropmi!
 0:gniddap;tnatropmi! 1:yticapo;tnatropmi! elbisiv:ytilibisiv;tnatropmi!
 neddih:wolfrevo;tnatropmi! 0:nigram;tnatropmi! enon:yalpsid;tnatropmi! xp".z
(),
            width: 130,
            height: 13
        };

Next we need to repack the script. To do that we are going to use Dean Edwards JavaScript packer so let’s go there … JavaScripter Packer.

Once you’re there … simply copy and paste the code and then run the packer … Repacked JavaScript Code

Once we’ve repacked the JavaScript we simply copy and paste the corrected code to the slidedeck.jquery.lite.pack.js file. Note! You may want to save a copy of the old file before you update the code. Just save the old file as: slidedeck.jquery.lite.pack-old.js. Then just save the new file, reload the page and vòila! The attribution link is gone …

March 31, 2011   No Comments

WordPress TinyMCE & .htaccess Errors

While working on customizing one of my clients WP Sites, I ran into memory limit errors after upgrading from WordPress 2.9.2 to WordPress 3.0.1. Though it seemed to be a relatively insignificant issue, when I attempted to automatically update the WordPress core from the administration panel, WordPress informed me that action failed from the lack of available memory. Then again I ran into memory errors when I attempted to upgrade a plug-in that required more than what was allowed. In this case the WordPress NAVT plug-in was the culprit. I could understand having memory issues upgrading the WordPress core, but seeing that I update plug-ins quite often I decided to do something about it.

Searching online for a solution to this problem, I came across a post from Jeff at PerishablePress.  Jeff provided a very good post demonstrating how to increase memory limits for the WordPress includes directory. However, I don’t know how effective the workaround are for those that are on shared hosting. Most hosting companies require administrator level access to modify global server settings and do not offer user the ability to manipulate server memory levels.

Jeff’s solution was to make three changes to increase the memory levels. First, place a PHP statement in the head of the wp-includes/cache.php file.

ini_set('memory_limit','32M'); // set memory to prevent fatal errors

Next, create an .htaccess file in the wp-includes directory with the following statement.

# set memory limit for cache.php
php_value memory_limit 32M

And last, create a localized php.ini file to increase PHP’s memory limit.

;; set memory limit for cache.php
memory_limit = 32M

However, my clients’ site is on shared hosting and this solution did not work. So, my solution was resolved by simply contacting the hosting company and requesting a memory increase from 16M to 32M.

After attempting Jeff’s solution, I simply contacted the host and forgot to remove the .htaccess file from the wp-includes directory. Later that day, when I went to edit some of my clients pages, I realized something was wrong with the WordPress visual editor TinyMCE. The last thing I would have suspected was the .htaccess file in the root of the wp-includes directory  but alas, that was the problem.

It seems that TinyMCE’s permissions will be effected if there is an .htaccess file in the wp-includes directory and without an explicit statement allowing TinyMCE access, it will not work properly. Thanks to Doug Joseph for posting his solution over on the WordPress support site. So, if you have problems getting TinyMCE to show up in WordPress double check for any permission related errors as this was a difficult to find, yet simple to resolve issue.

November 18, 2010   No Comments

So You Think Social Media & Blogging Help Buying Decisions

Social Media & Buying Decisions

Image Credit: psd

Facebook, Twitter and blogging have become the de facto standard for almost all search engine marketing initiatives, and I believe the general consensus is that social media sites and blogs have a significant impact on internet users buying decisions. However, when I took a look at the data in the following report, I was surprised how poorly these two mediums actually perform.

In a 2010 report by comScore, Searchanddise Commerce and iProspect, ‘The Value of Retail Search and Position,’ consumer electronics shoppers and computer products shoppers were compared in several search marketing metrics. ComScores’ dual methodology consisted of researching site search performance of retail websites and a survey-based model to quantify value and the perception of ‘premium positioning’ within site search results.

The results of comScores’ research completely blew me away. Though I’ve always considered the consumer products industry to be influenced based more on ‘brand awareness,’ my assumption was that social media and blogging have ‘changed the face’ of online marketing and have in effect evolved into being highly effective channels for promoting a consumers’ buying decisions. Unfortunately the data from their report doesn’t support that assumption.

According to comScore the research was comprised to study the following objectives:

  • To gauge the value and perception of premium placement in site search
  • To better understand how search engines and retail site search work together
  • To define premium positions within site search results as viewed by two different buying communities: computer and consumer electronics (CE) shoppers
  • To identify which information sources shoppers employ and what needs they satisfy in purchasing

I really don’t think it to be a wise decision to go on an assault in favor of the results. So, I invite you to be the judge and take a look at the data yourself. Please let me know what you think by reviewing the report below and letting me know your opinion. Thanks in advance.

Download PDF

October 8, 2010   No Comments

Florida Search Engine Optimization Dot Org » The First Real Post

Okay – This is the first real post for Florida Search Engine Optimization Dot Org. This has been a long time in the making … Only because I hadn’t really any interest in trying to promote this site only to rank for keywords that I already rank for on my main site …

Honestly, this is a bit of a sad day for me … While I wasn’t paying attention, someone snagged the domain name for a site that I blogged on for quite some time … Oh well … I guess that’s just how it goes … anyways … I’m using the almost exact same theme and design as I had on the old site … so, it’s gonna ‘feel’ the same … I just got really used to the old domain name … :-(

So … now that the cryings over … it’s time to announce the christening post of my site dedicated to SEO, SEM, SMO, Programming, HTML, CSS, JavaScript, Coding & Web Servers …

Wow … I hope I can keep up with it all … It should be fun. I hope you enjoy and benefit from this site as much as I will …

October 1, 2010   1 Comment