Ugly Chart

Syndicate content
Beauty is in the eye of the shareholder
Updated: 15 weeks 3 days ago

links for September 18th

Thu, 09/18/2008 - 15:00
Categories: Technical Analysis

A chess program in less than 5kb of Javascript

Thu, 09/18/2008 - 14:48

I’m really impressed with this chess program in less than 5kb of javascript.
Here is the code:

<SCRIPT>M=I=P=N=q=K=J=0 Bt=1999 Al=-Bt Ds=[10,-10] BE=120 G=[] R=[] KL=[3,3] j=[0,1,5,3,3,9,63,0] MV=[0,0,[1,10],[21,19,12,8],[11,9],[1,10,11,9],[1,10,11,9],0] for(z=0;z<8;){j[z+8]=j[z]<<=4 m=MV[z++] if(m){s=m.length for(x=0;x<s;){m[s+x]=-m[x++]}}}x='g00000000g' y='gggggggggg' b=y+y+"g23456432gg11111111g"+x+x+x+x+"g99999999ggABCDECBAg"+y+y w=x+x+x+"000111100000123321000123553210" a='000012346900' Y=[] PY=[] bY=[] for(y=0;y<12;y++){for(x=0;x<10;x++){z=(y*10)+x PY[z]=parseInt(a.charAt(y)) bY[z]=parseInt(w.charAt((z<60)?z:119-z),35)&7 R[z]=parseInt(b.charAt(z),35)}}R[BE]=0 d=document cp=new Function('a','b','return b[0]-a[0]') function Z(c,U,C,s,e,A,B,K){var z=-1,C=-C,V=8-U,b=Al,r=R,S,E=r[e],g,d if(C<-400)return[C,s,e] r[e]=S=r[s] r[s]=0 if(S)G[V][G[V].length]=[S,e] if(S-U==1&&r[e+Ds[U>>3]]>15){r[e]+=4}if(S-U==6&&(s-e==2||e-s==2)){g=s-4+(s<e)*7 d=(s+e)>>1 r[g]=0 r[d]=U+2}var L=Pz(U,K,C),N=L.length,n if(N){if(c){L.sort(cp) c-- var i=L[0],j=i[1],k=i[2],t b=-Z(c,V,i[0],j,k,-B,-A,i[3])[0] for(z=1;z<N;z++){if(b>A)A=b n=L[z] t=-Z(c,V,n[0],n[1],n[2],-A-1,-A,n[3])[0] if((t>A)&&(t<B))t=-Z(c,V,n[0],n[1],n[2],-B,-t,n[3])[0] if(t>b){b=t j=n[1] k=n[2] if(t>A)A=t if(b>B)break}}}else{b=Al while(--N&&B>b){if(L[N][0]>b){b=L[N][0]}}}}else{J=c+1}if(g){r[g]=U+2 r[d]=0}r[s]=S r[e]=E G[V].length-- return[b,j,k]}function Sf(c,U,s,e,K){var E=R[e],S=R[e]=R[s] R[s]=0 H() U=Z(c,U,0,BE,BE,Al,Bt,K) R[s]=S R[e]=E return U[0]}function mv(s,e,b){var E=R[e],S=R[s],a=S&7,u=M>>3,c=0,t=0,z=0,p if(!M){H() p=Pz(M,K,0) for(;z<p.length;z++){t=t||(s==p[z][1]&&e==p[z][2])} if(!t)return 0 if(Sf(0,8-M,s,e,K)>400)return 0}if(Sf(0,M,s,e,K)>400)c=1 var x=s%10,g=e-s,D=Ds[u],t=e%10,n=1+(N>>1) if(Sf(1,8-M,s,e,K)<-400)J=c+1 if((E&7)==6){J=2;return 0}K=0 if(a==1){if(R[e+D]>15)R[s]+=4-b if(g==2*D&&(R[e-1]&1||R[e+1]&1))K=s+D if(!E&&g%10)Sh(e,e-D)}if(s==21+u*70||s==28+u*70)KL[u]&=(x<5)+1 if(e==21+u*70||e==28+u*70)KL[!u]&=(x<5)+1 if(a==6){if(g*g==4)Sh(s-4+(s<e)*7,s+g/2) KL[u]=0}Sh(s,e) H() N++ M=8-M return 1} function H(){var z=99,Q s0=(N<32)?4-(N>>3):(N>64) G[0]=[] G[8]=[] kY=[] pY=[[],[]] for(;z>20;z--){a=R[z] if(a&7)G[a&8][G[a&8].length]=[a,z] Y[z]=bY[z]*s0 kY[z]=(N>40)||(10-2*bY[z])*s0 Q=pY[1][119-z]=pY[0][z]=PY[z] if (N<7&&z>40){pY[0][z]=pY[1][119-z]=Q+(Math.random()*Y[z])|1 Y[24]=Y[94]=29}}}function Pz(U,K,b){ var W,X,h,E,a,v,n,k=-1,u=U>>3,V=U^8,D=Ds[u],w=[],m,T,p=pY[u],H,d=KL[u],z,c,g,e=G[U],f=e.length,B=R,J=j for (z=0;z<f;z++){W=e[z][1] a=B[W] if (e[z][0]==a){a&=7 if(a>1){c=a==6 H=c?kY:Y T=b-H[W] n=MV[a] if(a==3||c){for(v=0;v<8;){X=W+n[v++] E=B[X] if(!E||(E&24)==V){w[++k]=[T+J[E]+H[X],W,X]}}if(c&&d){ if(d&1&&!(B[W-1]+B[W-2]+B[W-3])&&CH(W-2,V,D,-1)) w[++k]=[T+11,W,W-2] if(d&2&&!(B[W+1]+B[W+2])&&CH(W,V,D,1))w[++k]=[T+12,W,W+2]}}else{g=n.length for(v=0;v<g;){E=0 m=n[v++] X=W while(!E){X+=m E=B[X] if(!E||(E&24)==V){w[++k]=[T+J[E]+H[X],W,X]}}}}}else{T=b-p[W] X=W+D if(!B[X]){w[++k]=[T+p[X],W,X] if(!p[W]&&(!B[X+D])){w[++k]=[T+p[X+D],W,X+D,X]}}if(K&&(K==X+1||K==X-1))w[++k]=[T+p[X],W,K] for(h=X-1;h<X+2;h+=2){E=B[h]+U if(E&7&&E&8){w[++k]=[T+J[E]+p[h],W,h]}}}}}return w} function CH(W,V,D,T){var X,E,x,m,S=W+3,a=D+2,k=MV[3],B=R for(;W<S;W++){for(m=D-2;++m<a;){E=B[W+m] if(E&&(E&8)==V&&((E&8)==1||(E&7)==6))return 0 E=0 X=W while(!E){X+=m E=B[X] if((E==V+2+(m!=D)*2)||E==V+5)return 0}}for(z=0;z<8;)if(B[W+k[z++]]-V==3)return 0}E=0 W-=3 while(!E){W-=T E=B[W] if(E==V+2||E==V+5)return 0}return 1}function B(Q){var a=R[Q] if(J)return if(q==Q&&I){ O(q,I,1) I=0 return}if(a&&M==(a&8)){if(I)O(q,I,1) I=a q=Q O(q,0,1) return}if(I){if(mv(q,Q,d.FF.h.selectedIndex,y)){I=0 if(!J){var t=Z(2,M,0,BE,BE,Al,Bt,K) mv(t[1],t[2],0)}}}}function Sh(s,e){var a=R[s] R[e]=a R[s]=0 O(s,0,1) O(e,a,1)}function Rf(a){P=a for(var z=0;z<BE;z++)if(R[z]<16)O(z,R[z],1)}function O(x,y,z){if(z)x="i"+(x) d.images[x].src=y+'.gif'}h='<table cellpadding=4 class=t>' for(y=90;y>10;y-=10){h+="<tr>" for(x=0;x<10;x++){z=y+x if(x&&x<9){h+=('<td class='+(x+(y/10)&1?'b':'w')+'><a href="#" onclick="B(P?119-'+z+':'+z+'); return false"><img src=0.gif width=7 height=40 border=0><img src=0.gif width=25 height=40 name=i'+z+' border=0><img src=0.gif width=7 height=40 border></a></td>\n')}}h+='</tr>\n'}h+='</table>' d.write(h) Rf(0)</SCRIPT>
Categories: Technical Analysis

Deep thoughts: Banks

Wed, 09/17/2008 - 21:33

I thought this quote from Bertolt Brecht was good:

“What is robbing a bank compared with founding a bank?”

Categories: Technical Analysis

Anatomy of a Stock Selling Frenzy

Tue, 09/16/2008 - 08:39

This article has a nice timeline of the United Airlines stock crash last week:

“Let’s recap… An automated system added an old link to a dynamic Web page. An automated system detected the link as a new story and cataloged it as a current event. Enter a human for the only part of this tale: an analyst picks up the story and passes it on, not realizing that it is old news. Automated trading systems start a massive stock self off based on the old headline…”

Categories: Technical Analysis

links for September 11th

Thu, 09/11/2008 - 21:00
Categories: Technical Analysis