<?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-3778948</id><updated>2012-01-22T23:49:25.156Z</updated><category term='data parallelism'/><category term='Information Security Policy'/><category term='logging'/><category term='geek food'/><category term='Graphics processing unit'/><category term='Risk Management'/><category term='erlang'/><category term='tuples'/><category term='ASN.1'/><category term='books'/><category term='categorisation'/><category term='collaboration'/><category term='kurz and lang'/><category term='development'/><category term='security engineering'/><category term='low-latency messaging'/><category term='strategy'/><category term='Object-oriented programming'/><category term='production grade'/><category term='events'/><category term='Indian Cookery'/><category term='analytics'/><category term='software transactional memory'/><category term='open source'/><category term='astrology'/><category term='npu'/><category term='depth markets'/><category term='threading'/><category term='HFF'/><category term='it recruitment'/><category term='NIST'/><category term='strategy development'/><category term='BGM'/><category term='open source intelligence'/><category term='electronic trading'/><category term='ISO27001'/><category term='haskell'/><category term='fork/join'/><category term='SCIMARK'/><category term='hft'/><category term='Graph Drawing'/><category term='IT Management'/><category term='Ethics'/><category term='OpenTech 2008'/><category term='Monte Carlo'/><category term='financial cryptography'/><category term='quantitative analytics'/><category term='Policy'/><category term='xml'/><category term='security policy'/><category term='knowledge management'/><category term='fx trading'/><category term='shell scripting'/><category term='breakfast'/><category term='Parallel computing'/><category term='security'/><category term='idea management'/><category term='genetic algorithms'/><category term='high frequency trading'/><category term='hierarchy'/><category term='HPC'/><category term='credit global-warming'/><category term='micro trading engines'/><category term='shell programming'/><category term='gpu'/><category term='integration'/><category term='password security'/><category term='hfc'/><category term='open source funding model'/><category term='coding'/><category term='software pairs'/><category term='messaging design pattern'/><category term='TSE'/><category term='middleware'/><category term='data visualisation'/><category term='social network analysis'/><category term='community of interest'/><category term='bratwurst'/><category term='google'/><category term='MIMESweeper'/><category term='Peer-to-peer'/><category term='centroid'/><category term='COTS'/><category term='cryptography'/><category term='Microsoft'/><category term='geek beer'/><category term='asynchronous'/><category term='global networks'/><category term='messaging'/><category term='System on chip'/><category term='text mining'/><category term='disk performance analysis'/><category term='Information Security'/><category term='conference'/><category term='risk'/><category term='risk analytics'/><category term='crashes'/><category term='Security incident management'/><category term='program trading'/><category term='grid'/><category term='high performance computing'/><category term='low latency'/><category term='hdf5'/><category term='ricardian contracts'/><category term='virus trend analysis'/><category term='Nvidia'/><category term='subprime'/><category term='financial engineering'/><category term='internet'/><category term='CUDA'/><category term='information security process'/><category term='mom'/><category term='parathas'/><category term='Market Data'/><category term='disaster recovery'/><category term='ACM Queue'/><category term='Email Filtering'/><category term='notarisation'/><category term='news analysis'/><category term='application architecture'/><category term='Inheritance'/><category term='signal analysis'/><category term='log file analysis'/><category term='dot net'/><category term='29West'/><category term='fpga'/><category term='enterprise server management'/><category term='incremental risk management'/><category term='HPC Architecture'/><category term='platform jitter analysis'/><category term='patterns'/><category term='MMC'/><category term='smalltalk'/><category term='platform reliability'/><category term='numa'/><category term='Multi-core'/><category term='security architecture'/><category term='S3'/><category term='web services'/><category term='OO'/><category term='corba'/><category term='data architecture'/><category term='k-way merge sort'/><category term='algorithmics'/><category term='IPC'/><category term='Operating Systems'/><category term='SSD'/><category term='functional programming'/><category term='crisis management'/><category term='intellectual property'/><category term='parallelism'/><category term='fame'/><category term='Hardware'/><category term='Social network'/><category term='project management'/><title type='text'>Enhyper</title><subtitle type='html'>Financial Engineering, High Performance Computing, Information Security and Data Visualisation</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default?start-index=101&amp;max-results=100'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>112</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3778948.post-1826244122148832880</id><published>2012-01-20T09:37:00.000Z</published><updated>2012-01-20T09:37:04.175Z</updated><title type='text'>John Nolan on FPGA and GPU</title><content type='html'>&lt;span style="font-family: Arial,Helvetica,sans-serif;"&gt;A good overview of FPGA and GPU technology in this presentation &lt;/span&gt;&lt;a href="http://www.infoq.com/interviews/nolan-hardware-acceleration" style="font-family: Arial,Helvetica,sans-serif;" target="_blank"&gt;http://www.infoq.com/interviews/nolan-hardware-acceleration&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1826244122148832880?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1826244122148832880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1826244122148832880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1826244122148832880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1826244122148832880'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2012/01/john-nolan-on-fpga-and-gpu.html' title='John Nolan on FPGA and GPU'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-997221587552706849</id><published>2012-01-09T13:50:00.003Z</published><updated>2012-01-09T13:50:56.124Z</updated><title type='text'>LEON3</title><content type='html'>&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;The &lt;a href="http://www.gaisler.com/cms/index.php?option=com_content&amp;amp;task=view&amp;amp;id=13&amp;amp;Itemid=53" target="_blank"&gt;LEON3&lt;/a&gt; is a synthesisable VHDL model of a 32-bit processor compliant with the &lt;a href="http://www.sparc.org/" target="_blank"&gt;SPARC V8 architecture&lt;/a&gt;. The model is highly configurable, and particularly suitable for system-on-a-chip (SOC) designs. The full source code is available under the &lt;a href="http://www.blogger.com/doc/gnugpl.txt" target="_blank"&gt;GNU GPL&lt;/a&gt; license, allowing free and unlimited use for research and education. LEON3 is also available under a low-cost commercial license, allowing it to be used in any commercial application to a fraction of the cost of comparable IP cores. The LEON3 processor has the following features:&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;ul style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;SPARC V8 instruction set with V8e extensions&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Advanced 7-stage pipeline &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Hardware multiply, divide and MAC units &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;High-performance, &lt;a href="http://www.gaisler.com/cms/index.php?option=com_content&amp;amp;task=view&amp;amp;id=138&amp;amp;Itemid=54" target="_self"&gt;fully pipelined IEEE-754 FPU&lt;/a&gt;&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Separate instruction and data cache (Harvard architecture) with snooping &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Configurable caches: 1 - 4 ways, 1 - 256 kbytes/way. Random, LRR or LRU replacement &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Local instruction and data scratch pad RAM, 1 - 512 Kbytes &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;SPARC Reference MMU (SRMMU) with configurable TLB&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;&lt;a href="http://www.arm.com/products/solutions/amba2overview.html" target="_blank"&gt;AMBA-2.0&lt;/a&gt; AHB bus interface&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Advanced on-chip debug support with instruction and data trace buffer &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Symmetric Multi-processor support (SMP)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Power-down mode and clock gating&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Robust and fully synchronous single-edge clock design &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Up to 125 MHz in FPGA and 400 MHz on 0.13 um ASIC technologies&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Fault-tolerant and SEU-proof version available for space applications&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Extensively configurable &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;Large range of software tools: compilers, kernels, simulators and debug monitors &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size: small;"&gt;High Performance: 1.4 DMIPS/MHz, 1.8 CoreMark/MHz (gcc -4.1.2)&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="font-family: Arial,Helvetica,sans-serif;"&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;The LEON3 processor is distributed as part of the &lt;a href="http://www.gaisler.com/cms/index.php?option=com_content&amp;amp;task=section&amp;amp;id=13&amp;amp;Itemid=125" target="_self"&gt;GRLIB IP library&lt;/a&gt;, allowing simple integration into complex SOC designs. GRLIB also includes a configurable LEON3 multi-processor design, with up to 4 CPU's and a large range of on-chip peripheral blocks.&lt;/span&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-997221587552706849?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/997221587552706849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=997221587552706849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/997221587552706849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/997221587552706849'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2012/01/leon3.html' title='LEON3'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-950662329909249700</id><published>2011-11-22T15:50:00.002Z</published><updated>2011-11-22T16:02:14.483Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='hft'/><title type='text'>Waters European Trading Architecture Summit 2011</title><content type='html'>&lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Some feedback from this event which I attended today.&lt;br /&gt;&lt;br /&gt;Event &lt;a title="http://events.waterstechnology.com/etas" href="http://events.waterstechnology.com/etas"&gt;http://events.waterstechnology.com/etas&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="779382413-22112011"&gt;&lt;strong&gt;Infrastructure Management: Reducing costs,  Improving performance, &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="779382413-22112011"&gt;Professor Roger Woods, Queens University,  Belfast&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;  &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Prof Woods gave an  impassioned talk about a tool that he has developed which takes c++, allows you  to navigate the code and identify subsystems which you can target to run on  hardware or emulation of hardware. &lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;He worked on the JP  Morgan collaboration with Maxellor and was bullish about the  technology.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Two years from  pilot to production.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Developed at tool that allows  identification of sections that are suitable for FPGA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Key issue:  programming FPGA bitstreams (&lt;a title="http://en.wikipedia.org/wiki/Bitstream" href="http://en.wikipedia.org/wiki/Bitstream"&gt;http://en.wikipedia.org/wiki/Bitstream&lt;/a&gt;)  - took six months&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;C&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;++ is translated into C (manually) before being cross  compiled into Java which is what the Maxellor compiler requires.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;This&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt; is to  remove c++ abstraction which "kills parellisation" (see  slides)&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Focus was hardware  FFT - all other logic in software - comms via FPGA bitstream&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;       &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;In  summary:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;ideal for risk  calculation and monte carlo where algorithm does not change.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;C++ legacy code  does not parallelise easily and is not a candidate for FPGA&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Three year dev  cycle.&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Complex, manual  process&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;JPM own 20% of  Maxellor&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;     &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;Resources&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;  &lt;div&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;a title="http://www.ecit.qub.ac.uk/Card/?name=r.woods" href="http://www.ecit.qub.ac.uk/Card/?name=r.woods"&gt;http://www.ecit.qub.ac.uk/Card/?name=r.woods&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;eFutures Portal -  &lt;a title="http://efutures.ac.uk/" href="http://efutures.ac.uk/"&gt;http://efutures.ac.uk/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;   &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;This continued to a  panel hosted by Chris Skinner&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;span style="font-family:Arial;"&gt;&lt;span class="779382413-22112011"&gt;&lt;strong&gt;Panel: The Parallel  Paradigm Shift: are we about to enter a new chapter in the algorithmic arms  race&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;strong&gt;Moderator:  Chris Skinner, Panel: Prof Woods, Steven Weston, Global Head of Analytics, JPM.  Andre Nedceloux, Sales guy, Excelian&lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;span style="font-family: Symbol;"&gt;&lt;span style=""&gt;&lt;span style="font: 7pt 'Times New Roman';"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;/div&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;FPGA Plant needs to be kept hot to achieve best latency. To keep FPGA busy you need a few regular host cores loading work onto them.&lt;/li&gt;&lt;li&gt;Programming/debugging directly in VHDL is ‘worse than a nightmare’, don’t try.&lt;/li&gt;&lt;li&gt;Isolate the worst performing pieces, (Amdahl’s law) de-abstract and place on FPGA, they call each of the isolated units a ‘kernel’ .&lt;/li&gt;&lt;li&gt;Compile times are high for Maxeler compiler to output VHDL, 4 hours for a model on a 4 core box.&lt;/li&gt;&lt;li&gt;Iterative model for optimisation and implementation. They improved both the mathematics in the models and the implementation onto FPGA – ie, consider it not just a programming problem, but also a maths modeling one.&lt;/li&gt;&lt;li&gt;They use python to manage the interaction with the models (e.g pulling reports)&lt;/li&gt;&lt;li&gt;Initially run a model on the FPGA hosts and then incrementally update it through the day -  when market data or announcements occur.&lt;br /&gt;&lt;/li&gt;&lt;li&gt;No separate report running phase – it is included in the model run and report is kept in memory. Data only written out to a database at night time, if it is destroyed then it can be re-created.&lt;/li&gt;&lt;li&gt;Low-latency is no longer a competitive advantage but now a  status quo service for investment banking.&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Arial;font-size:100%;"&gt;Requires specialist non-general/outsourced  programmers required who can understand hardware and algorithms who work  alongside the business.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;div&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;strong&gt;&lt;span class="779382413-22112011"&gt;Panel&lt;/span&gt; &lt;/strong&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;strong&gt;&lt;span class="779382413-22112011"&gt;&lt;span style="font-size:130%;"&gt;How  low can you go? Ultra-low-latency trading&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;strong&gt;&lt;span class="779382413-22112011"&gt;Moderator: David  Berry&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;strong&gt;&lt;span class="779382413-22112011"&gt;Members: Jogi  Narain, CTO, FGS Capital LLP, Benjamin Stopford, Architect, RBS. Chris Donan,  Head of Electronic Trading - Barcap.&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="779382413-22112011"&gt;&lt;span style="font-family:Arial;"&gt;This was a well run panel  with some good insights from Chris Donan in particular:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ul&gt;&lt;li style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="779382413-22112011"&gt;Stock programmers don't understand the stack from network to nic to stack to application and the underlying hardware operations&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Small teams of experienced engineers produce the best results&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Don't develop VHDL skills in house - use external resources.&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Latency gains correlate to profitability&lt;/li&gt;&lt;li style="font-family: arial;"&gt;FPGA is good for market data (ie fixed problem) and risk&lt;span class="779382413-22112011"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span class="779382413-22112011"&gt;&lt;span style="font-family:Arial;font-size:85%;"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;Software parallelism is the future. &lt;/span&gt; &lt;/span&gt; &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-950662329909249700?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/950662329909249700/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=950662329909249700' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/950662329909249700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/950662329909249700'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/11/waters-european-trading-architecture.html' title='Waters European Trading Architecture Summit 2011'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4370400776132605416</id><published>2011-06-12T16:58:00.003+01:00</published><updated>2011-06-12T17:02:22.369+01:00</updated><title type='text'>HFT World 2011 and intro</title><content type='html'>Finally my first post to the Enhyper blog, on a rainy Sunday afternoon. I've just returned from speaking at HFT World 2011 in Amsterdam. Turnout wasn't as large as I expected, however, there was some good discussion around what the future is likely to hold.&lt;br /&gt;&lt;br /&gt;I shared some of my views on embracing &lt;span style="font-weight: bold;"&gt;the end-to-end principle&lt;/span&gt; with Mike O'Hara from the High Frequency Trading Review, and I'll return to this post to set some of those views down in blog space a bit later. My background's in IP/telecoms systems design, so my views of HFT and its technology tend to be coloured by that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4370400776132605416?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4370400776132605416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4370400776132605416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4370400776132605416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4370400776132605416'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/06/hft-world-2011-and-intro.html' title='HFT World 2011 and intro'/><author><name>Bruce Simpson</name><uri>http://www.blogger.com/profile/14938269654940499931</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/-L20ZIRLhvHM/TfTgGZ2HgOI/AAAAAAAAAAQ/J9159RSz7fU/s1600/f09cf2497a08bc6e515ae7584ac53a04.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7977653733885467968</id><published>2011-06-10T20:46:00.005+01:00</published><updated>2011-06-10T20:57:38.322+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fx trading'/><category scheme='http://www.blogger.com/atom/ns#' term='high frequency trading'/><title type='text'>Thomson Reuters Expert Session</title><content type='html'>&lt;span class="Apple-style-span"  &gt;I was kindly invited to give an expert session by Thomson Reuters when I was between assignments. I gave an hour presentation which has been edited into four sessions:&lt;br /&gt;&lt;/span&gt;&lt;p&gt;&lt;span class="Apple-style-span"  &gt;&lt;br /&gt;On the FX Business Model &lt;a href="http://thomsonreuters.na4.acrobat.com/p72695781/" target="_blank" style="color: rgb(0, 0, 204); "&gt;http://thomsonreuters.na4.&lt;wbr&gt;acrobat.com/p72695781/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  &gt;&lt;a href="http://thomsonreuters.na4.acrobat.com/p72695781/" target="_blank" style="color: rgb(0, 0, 204); "&gt;&lt;/a&gt;On FX and the OTC Market &lt;a href="http://thomsonreuters.na4.acrobat.com/p97524929/" target="_blank" style="color: rgb(0, 0, 204); "&gt;http://thomsonreuters.na4.&lt;wbr&gt;acrobat.com/p97524929/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  &gt;On High Frequency Trading &lt;a href="http://thomsonreuters.na4.acrobat.com/p67792422/" target="_blank" style="color: rgb(0, 0, 204); "&gt;http://thomsonreuters.na4.&lt;wbr&gt;acrobat.com/p67792422/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  &gt;On FX Strategies &lt;a href="http://thomsonreuters.na4.acrobat.com/p10287782/" target="_blank" style="color: rgb(0, 0, 204); "&gt;http://thomsonreuters.na4.&lt;wbr&gt;acrobat.com/p10287782/&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span class="Apple-style-span"  &gt;&lt;a href="http://thomsonreuters.na4.acrobat.com/p10287782/" target="_blank" style="color: rgb(0, 0, 204); "&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://thomsonreuters.na4.acrobat.com/p10287782/" target="_blank" style="color: rgb(0, 0, 204); "&gt;&lt;/a&gt;I'm now gainfully employed so back to silent running for me.&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7977653733885467968?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7977653733885467968/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7977653733885467968' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7977653733885467968'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7977653733885467968'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/06/thomson-reuters-expert-session.html' title='Thomson Reuters Expert Session'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3948297788457595231</id><published>2011-03-15T23:47:00.004Z</published><updated>2011-03-16T00:17:26.339Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='hft'/><category scheme='http://www.blogger.com/atom/ns#' term='global networks'/><title type='text'>Global Connectivity Vendor Selection</title><content type='html'>&lt;span style="font-family: arial;"&gt;TeleGeography produce a &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.telegeography.com/product-info/map_cable/"&gt;topological map&lt;/a&gt;&lt;span style="font-family: arial;"&gt; of submarine cables which is of interest to hft firms. There are many aspects to consider when procuring global connectivity. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Before you choose a suppler, perhaps some important questions to ask are:&lt;/span&gt;&lt;br /&gt;&lt;ol style="font-family: arial;"&gt;&lt;li&gt;What are the fibre miles versus physical miles of long haul links&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How do you measure your quoted latency&lt;/li&gt;&lt;li&gt;What is your underlying network technology and how is it provisioned&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What network equipment do you use for your core network&lt;br /&gt;&lt;/li&gt;&lt;li&gt;How many hardware queues on the above equipment do you allocate to our service&lt;/li&gt;&lt;li&gt;When using third parties, what is their underlying technology and distribution methodology&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What hand-off equipment do you use&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What can the above deliver in terms of serialisation capability&lt;br /&gt;&lt;/li&gt;&lt;li&gt;What traffic shaping do you perform&lt;/li&gt;&lt;li&gt;How often do you sample cdr violation&lt;/li&gt;&lt;li&gt;Do you report CDR violation&lt;/li&gt;&lt;li&gt;Do you offer QoS&lt;/li&gt;&lt;li&gt;Do you offer IGMP snooping&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family: arial;"&gt;Not an exhaustive list, but a good boilerplate for vendor assessment. I'll expand on each point in due course&lt;/span&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3948297788457595231?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3948297788457595231/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3948297788457595231' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3948297788457595231'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3948297788457595231'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/03/global-connectivity-vendor-selection.html' title='Global Connectivity Vendor Selection'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5835328510190478096</id><published>2011-03-07T22:55:00.002Z</published><updated>2011-03-07T22:58:42.147Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='npu'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><title type='text'>Cavium Octeon II</title><content type='html'>Met with &lt;a href="mailto:barry@tervela.com"&gt;Barry&lt;/a&gt;, CTO of &lt;a href="http://www.tervela.com"&gt;Tervela&lt;/a&gt; on Friday. He recommended taking a look at the &lt;a href="http://www.caviumnetworks.com/OCTEON_II_MIPS64.html"&gt;Cavium Octeon II &lt;/a&gt;NPU card which has 32 cores, a C like interface and shiny new architecture.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5835328510190478096?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5835328510190478096/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5835328510190478096' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5835328510190478096'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5835328510190478096'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/03/cavium-octeon-ii.html' title='Cavium Octeon II'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2501899696558734344</id><published>2011-03-02T12:12:00.005Z</published><updated>2011-03-02T16:48:38.831Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='platform jitter analysis'/><title type='text'>FTQ for platform jitter analysis</title><content type='html'>&lt;a style="font-family: arial;" href="https://rt.wiki.kernel.org/index.php/FTQ"&gt;FTQ&lt;/a&gt;&lt;span style="font-family:arial;"&gt; is a useful tool dug up by Bruce which we've started using for jitter analysis and it's showing up some surprising results. The idea is simple - how many iterations of a variable can be performed in a fixed time.&lt;br /&gt;&lt;br /&gt;I started by running the threaded version on our 8 core, dual cpu server for approximately 3 minutes using the following command:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;t_ftq -t 8 -n 450000&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Using &lt;a href="http://www.gnu.org/software/octave/"&gt;Octave&lt;/a&gt;, I calculated the variance (42133) and standard deviation (2485.1.) Plotting this gave this over populated graph:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/-BYeMK5no0jE/TW5SD23SNdI/AAAAAAAAAdA/aAU9ZT0KPkA/s1600/3minftq.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/-BYeMK5no0jE/TW5SD23SNdI/AAAAAAAAAdA/aAU9ZT0KPkA/s320/3minftq.png" alt="" id="BLOGGER_PHOTO_ID_5579487214579103186" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;Next I thought I'd run it over seven cores and got a smoother profile. But graphs are fine and dandy but you need to look at the data and the percentiles. So as a first pass, I wrote this nifty awk script:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;span style="font-family:courier new;"&gt;#!/bin/bash&lt;br /&gt;&lt;br /&gt;FACTOR=2&lt;br /&gt;CORES="`grep -c processor /proc/cpuinfo`"&lt;br /&gt;THREADS=`echo "$CORES * $FACTOR" | bc`&lt;br /&gt;&lt;br /&gt;while [ "$THREADS" -gt 1 ]&lt;br /&gt;do&lt;br /&gt;./t_ftq -t $THREADS&lt;br /&gt;&lt;br /&gt;for FILE in ftq*counts.dat&lt;br /&gt;do&lt;br /&gt;&lt;br /&gt;  awk 'BEGIN {&lt;br /&gt;&lt;br /&gt;    minimum = 4500000&lt;br /&gt;    maximum = 0&lt;br /&gt;    average = 0&lt;br /&gt;  }&lt;br /&gt;  {&lt;br /&gt;    if($1 &lt; minimum =" $1"&gt; maximum)&lt;br /&gt;    {&lt;br /&gt;      maximum = $1&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    average += $1&lt;br /&gt;&lt;br /&gt;  }&lt;br /&gt;  END {&lt;br /&gt;    printf("THREADS=%d min=%d:max=%d:avg=%d:var=%d\n", '"$THREADS"', minimum, maximum, average/NR, maximum-minimum)&lt;br /&gt;  }' $FILE&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;THREADS="`expr $THREADS - 1`"&lt;br /&gt;&lt;br /&gt;rm -f *.dat&lt;br /&gt;&lt;br /&gt;echo&lt;br /&gt;&lt;br /&gt;done&lt;br /&gt;&lt;br /&gt;exit 0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Which produced this output when run with a loading factor of 1:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=19080:max=43090:avg=41247:var=24010&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=8401:max=43090:avg=41971:var=34689&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=8401:max=43090:avg=42596:var=34689&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=8956:max=43090:avg=42453:var=34134&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=21515:max=43090:avg=42326:var=21575&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=11157:max=43090:avg=42548:var=31933&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=6351:max=43090:avg=42619:var=36739&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=6351:max=43090:avg=42381:var=36739&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=20666:max=43090:avg=42217:var=22424&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=7591:max=43090:avg=42264:var=35499&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=7591:max=43090:avg=42487:var=35499&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=25263:max=43090:avg=42566:var=17827&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=20513:max=43090:avg=42603:var=22577&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=15328:max=43090:avg=42528:var=27762&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=9555:max=43090:avg=41859:var=33535&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=9324:max=43090:avg=40872:var=33766&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=10144:max=43090:avg=41454:var=32946&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=29223:max=43090:avg=42749:var=13867&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=25239:max=43090:avg=42590:var=17851&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=20013:max=43090:avg=42357:var=23077&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=4612:max=43090:avg=42114:var=38478&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=457:max=43090:avg=42351:var=42633&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=457:max=43090:avg=41645:var=42633&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=15064:max=43090:avg=41190:var=28026&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=16821:max=43090:avg=41614:var=26269&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=15204:max=43090:avg=41272:var=27886&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=21561:max=43090:avg=42436:var=21529&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=23847:max=43090:avg=42158:var=19243&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=5588:max=43090:avg=41406:var=37502&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=5588:max=43090:avg=41282:var=37502&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=26739:max=43090:avg=42303:var=16351&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=19834:max=43090:avg=42021:var=23256&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=12879:max=43090:avg=41332:var=30211&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=2 min=10438:max=43090:avg=41910:var=32652&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=2 min=10438:max=43090:avg=41816:var=32652&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-family:courier new;" &gt;Which is quite surprising in that on the two thread run, there are  surprising minimums. In 5, 7 and 8, two adjacent threads have the same minima/maxima which is weird. So with FACTOR set to 2, this is what we get:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=23:max=43090:avg=39844:var=43067&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=22:max=43090:avg=41978:var=43068&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=9:max=43090:avg=39131:var=43081&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=9:max=43090:avg=37050:var=43081&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=17:max=43090:avg=39012:var=43073&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=17:max=43090:avg=40153:var=43073&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=4:max=43090:avg=41036:var=43086&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=23:max=43090:avg=40206:var=43067&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=32:max=43090:avg=40174:var=43058&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=68:max=43090:avg=40551:var=43022&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=23:max=43090:avg=40927:var=43067&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=23:max=43090:avg=40747:var=43067&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=28:max=43090:avg=40886:var=43062&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=8:max=43090:avg=39380:var=43082&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=8:max=43090:avg=36551:var=43082&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=16 min=22:max=43090:avg=38743:var=43068&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=139:max=43090:avg=39622:var=42951&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=12:max=43090:avg=40690:var=43078&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=64:max=43090:avg=39721:var=43026&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=3:max=43090:avg=39207:var=43087&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=3:max=43090:avg=40143:var=43087&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=3213:max=43090:avg=41611:var=39877&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=18:max=43090:avg=39399:var=43072&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=18:max=43090:avg=39894:var=43072&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=3:max=43090:avg=39579:var=43087&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=3:max=43090:avg=39027:var=43087&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=9:max=43090:avg=39910:var=43081&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=77:max=43090:avg=40085:var=43013&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=16:max=43090:avg=40392:var=43074&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=13:max=43090:avg=41455:var=43077&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=15 min=12:max=43090:avg=41152:var=43078&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=63:max=43090:avg=41229:var=43027&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=64:max=43090:avg=40931:var=43026&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=12:max=43090:avg=39935:var=43078&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=12:max=43090:avg=39307:var=43078&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=37:max=43090:avg=39408:var=43053&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=202:max=43090:avg=41830:var=42888&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=18517:max=43090:avg=42397:var=24573&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=87:max=43090:avg=41449:var=43003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=87:max=43090:avg=41352:var=43003&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=17:max=43090:avg=41919:var=43073&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=17:max=43090:avg=41896:var=43073&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=5902:max=43090:avg=42156:var=37188&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=3620:max=43090:avg=41960:var=39470&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=14 min=64:max=43090:avg=41448:var=43026&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=20:max=43090:avg=39998:var=43070&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=124:max=43090:avg=40715:var=42966&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=1:max=43090:avg=38856:var=43089&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=1:max=43090:avg=39265:var=43089&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=18:max=43090:avg=40026:var=43072&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=18:max=43090:avg=40526:var=43072&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=1:max=43090:avg=38695:var=43089&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=1:max=43090:avg=38107:var=43089&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=76:max=43090:avg=40457:var=43014&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=76:max=43090:avg=39891:var=43014&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=283:max=43090:avg=40472:var=42807&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=119:max=43090:avg=40724:var=42971&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=13 min=119:max=43090:avg=40402:var=42971&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=130:max=43090:avg=42537:var=42960&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=10:max=43090:avg=40826:var=43080&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=54:max=43090:avg=39270:var=43036&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=151:max=43090:avg=41114:var=42939&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=151:max=43090:avg=40087:var=42939&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=466:max=43090:avg=41241:var=42624&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=164:max=43090:avg=42035:var=42926&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=164:max=43090:avg=41621:var=42926&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=3398:max=43090:avg=41298:var=39692&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=3398:max=43090:avg=41979:var=39692&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=758:max=43090:avg=42505:var=42332&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=12 min=10:max=43090:avg=41605:var=43080&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=1416:max=43090:avg=41151:var=41674&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=9554:max=43090:avg=42649:var=33536&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=1416:max=43090:avg=41709:var=41674&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=21903:max=43090:avg=42534:var=21187&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=93:max=43090:avg=41279:var=42997&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=93:max=43090:avg=40962:var=42997&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=239:max=43090:avg=41907:var=42851&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=53:max=43090:avg=42096:var=43037&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=53:max=43090:avg=41543:var=43037&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=408:max=43090:avg=40986:var=42682&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=11 min=1971:max=43090:avg=42006:var=41119&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=27331:max=43090:avg=42582:var=15759&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=5713:max=43090:avg=42033:var=37377&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=3765:max=43090:avg=41529:var=39325&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=3765:max=43090:avg=42201:var=39325&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=207:max=43090:avg=42670:var=42883&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=207:max=43090:avg=41863:var=42883&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=4105:max=43090:avg=40956:var=38985&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=140:max=43090:avg=41083:var=42950&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=140:max=43090:avg=42134:var=42950&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=10 min=176:max=43090:avg=41888:var=42914&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=629:max=43090:avg=41771:var=42461&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=1938:max=43090:avg=41748:var=41152&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=435:max=43090:avg=41567:var=42655&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=435:max=43090:avg=41126:var=42655&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=7019:max=43090:avg=40533:var=36071&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=133:max=43090:avg=41031:var=42957&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=133:max=43090:avg=41695:var=42957&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=118:max=43090:avg=41558:var=42972&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=9 min=65:max=43090:avg=41412:var=43025&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=3028:max=43090:avg=41970:var=40062&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=4713:max=43090:avg=41803:var=38377&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=4713:max=43090:avg=41633:var=38377&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=1184:max=43090:avg=41842:var=41906&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=1184:max=43090:avg=41401:var=41906&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=12598:max=43090:avg=41587:var=30492&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=19076:max=43090:avg=42217:var=24014&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=8 min=9136:max=43090:avg=42355:var=33954&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=12260:max=43090:avg=41692:var=30830&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=12489:max=43090:avg=42036:var=30601&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=272:max=43090:avg=42520:var=42818&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=272:max=43090:avg=42526:var=42818&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=18847:max=43090:avg=42556:var=24243&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=12026:max=43090:avg=42078:var=31064&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=7 min=12026:max=43090:avg=41752:var=31064&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=14357:max=43090:avg=42024:var=28733&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=14357:max=43090:avg=42175:var=28733&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=22221:max=43090:avg=42552:var=20869&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=23168:max=43090:avg=42747:var=19922&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=26899:max=43090:avg=42721:var=16191&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=6 min=6890:max=43090:avg=42610:var=36200&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=22566:max=43090:avg=42447:var=20524&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=16706:max=43090:avg=42329:var=26384&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=16706:max=43090:avg=42252:var=26384&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=15030:max=43090:avg=42335:var=28060&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=5 min=15030:max=43090:avg=42263:var=28060&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=7988:max=43090:avg=42158:var=35102&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=8031:max=43090:avg=42410:var=35059&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=10691:max=43090:avg=42238:var=32399&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=4 min=10691:max=43090:avg=41725:var=32399&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=15163:max=43090:avg=42264:var=27927&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=17850:max=43090:avg=42188:var=25240&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=3 min=6638:max=43090:avg=41799:var=36452&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=2 min=6497:max=43090:avg=41353:var=36593&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;THREADS=2 min=6497:max=43090:avg=41521:var=36593&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;So a very rough heuristic visual analysis tells me that I'd be best having 6 cores at most running my trading engine. Time to play with Octave...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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/3778948-2501899696558734344?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2501899696558734344/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2501899696558734344' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2501899696558734344'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2501899696558734344'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/03/ftq-for-platform-jitter-analysis.html' title='FTQ for platform jitter analysis'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-BYeMK5no0jE/TW5SD23SNdI/AAAAAAAAAdA/aAU9ZT0KPkA/s72-c/3minftq.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6827838762290400040</id><published>2011-02-11T11:25:00.002Z</published><updated>2011-02-11T11:31:17.425Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='hft'/><title type='text'>HIFREQ 2011 Panel Discussion Input</title><content type='html'>&lt;span style="font-family: arial;"&gt;Here's my input to the panel discussion for &lt;a href="http://www.hifreqtrade.com/"&gt;HIFREQ 2011&lt;/a&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-family: arial;"&gt;• What are the different set ups and combinations for HFT architecture?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I have experience of four different architectures:&lt;/span&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;traditional monolithic event queue and broadcast&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;reflective memory, distributed processing&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;dma, shared memory, multi-process and multicast&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;trading engine on a card&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;The latter appears to be the dream set up. It consists of an FPGA enabled network card with the strategy running on the card itself. &lt;/span&gt;&lt;span style="font-family: arial;"&gt;This has been implemented  by several large prop trading outfits who have arb strats. Up until June last year, we were able to compete with an aggressive arb strat - but we our fill rates&lt;/span&gt;&lt;span style="font-family: arial;"&gt; have dropped off dramatically and we're consistently being beaten on speed. So we've moved the goalposts - we now focus on market making, news  and global multi-venue trading. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;I'd be interested in other approaches&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;• &lt;span style="font-weight: bold;"&gt;Is massive multicore or specialist silicon (FPGA, GPU etc.) the next frontier?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Multicore is attractive for a multi strategy play, but it requires careful design to avoid data races and performance issues like tlb cache misses and memory barriers. FPGA has always been attractive &lt;/span&gt;&lt;span style="font-family: arial;"&gt;for dealing with FIX and conversion of ascii to binary (ie parsing). GPU has promise in the equities world where dynamic pricing and portfolio analysis are required. What's been widely overlooked is&lt;/span&gt;&lt;span style="font-family: arial;"&gt; DSP. There are some very interesting things you can do with DSP.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;• &lt;span style="font-weight: bold;"&gt;Which solutions provide maximum scalability, configuration, and customisation to ensure continual upgrade and development of your&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;systems to survive in tough technology race?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;It has to be a message orientated multicast pure layer 2 architecture with software routing.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;• Managing microbursts: the art and engineering of data capacity management&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Again, a high performance messaging system combined with high resolution time and accurate traffic analysis are a must. Combine this with knowledge of the underlying&lt;/span&gt;&lt;span style="font-family: arial;"&gt; network hardware in order to utilise multiple hardware queues on the switches, judicious use of QoS and correctly configuring the messaging system to utilise multiple channels&lt;/span&gt;&lt;span style="font-family: arial;"&gt; yields good results.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;• Taming the data torrent: conflating direct and aggregate market data feeds&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Here's where an FPGA enabled network card helps e.g. by coalescing multiple keystations or A and B feeds, hashing messages and dropping duplicates and translating ascii to&lt;/span&gt;&lt;span style="font-family: arial;"&gt; binary help greatly. Combine this with multicast for efficient data transport.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;• Is asynchronous processing inevitable? What are the implications?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;This has been used in HFT for many years and are necessary for effective parallelisation. One pattern I use is an "asynchronous n-slot put-take connector" which is a way of &lt;/span&gt;&lt;span style="font-family: arial;"&gt;joining different processes in a way that allows each process to utilise its full timeslice. The implications of not using it are latency...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;• What is next for complex event processing and tick databases? Will they be able to keep up?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;CEP is a necessary evil, however, any strategy that uses it is almost impossible to debug. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;With regards to tick databases I fail to see why people store stuff in databases at all - all our &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;market data is captured on an electrically connected secondary machine using HDF5 in date order directories. it's then shipped up&lt;/span&gt;&lt;span style="font-family: arial;"&gt; to a disk array overnight. Backtest generally uses only three months worth of data.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial; font-weight: bold;"&gt;• Surviving the technical glitch at high speed: designing robust architectures&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;The ability to run multiple strategies and services on a multicast message bus means recovery &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;from failure is straightforward.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6827838762290400040?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6827838762290400040/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6827838762290400040' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6827838762290400040'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6827838762290400040'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/02/hifreq-2011-panel-discussion-input.html' title='HIFREQ 2011 Panel Discussion Input'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3629863603005660324</id><published>2011-02-08T23:53:00.005Z</published><updated>2011-02-09T16:40:17.483Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='Risk Management'/><title type='text'>High Frequency Trading World, Chicago</title><content type='html'>&lt;span style="font-family:arial;"&gt;I've kindly been invited to talk at &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.terrapinn.com/2011/high-frequency-trading-world-chicago/"&gt;&lt;span style="text-decoration: underline;"&gt;High Frequency Trading World, Chicago&lt;/span&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt; on June 27-29th 2011.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I suggested the following three talks. The real-time risk management one was chosen as the host thought this would be of great interest to traders. I've implemented this for real and gave a talk on &lt;a href="http://enhyper.blogspot.com/2010/08/infosec-data-analytics-and.html"&gt;Infosec Data Analytics and Visualisation&lt;/a&gt; which was well received so I thought I'd extend it to transactional logging. The basic idea came from work I did with Ian on &lt;a href="http://iang.org/papers/triple_entry.html"&gt;triple entry accounting &lt;/a&gt;[sic] and "&lt;a href="http://enhyper.blogspot.com/2008/03/notelets-ive-been-looking-with-interest.html"&gt;Notelets&lt;/a&gt;".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Real-time risk management and regulatory compliance&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;persisting transactions to the cloud&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;non-repudiation, risk management and distributed regulation using&lt;/span&gt;&lt;span style="font-family:arial;"&gt; "triple entry" transactional logging&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Market analytics using Hadoop&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;The next idea is more pioneering. Looking at new approaches to exchange technology and innovative delivery mechanisms.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Next Generation Exchange Technology&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;The transition to non-computational infra&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Neat tricks with FPGA, DSP and memristors&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Making the real virtual - multicast in software&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Affordable networks: VPLS, QoS and IGMP snooping&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;And finally the day job&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Trading Engine Technology&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Lockless design: avoiding data races&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Shared memory techniques, superpages and reflective memory,&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;RSS, recvmsg() and kernel bypass for fast data acquisition&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Real-time Linux, thread prioritisation techniques.&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Tuning systems for HPC&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Cheap, high accuracy time using PTP&lt;/span&gt;&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/3778948-3629863603005660324?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3629863603005660324/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3629863603005660324' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3629863603005660324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3629863603005660324'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/02/quant-invest-chicago-2011-june-27-29.html' title='High Frequency Trading World, Chicago'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-8540553892471232561</id><published>2011-02-03T10:36:00.003Z</published><updated>2011-02-03T11:24:57.543Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><title type='text'>What to do with your FPGA Enabled Network Card</title><content type='html'>&lt;span style="font-family: arial;"&gt;Here's what you can do with your new shiny 10GE network card with onboard FPGA:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Port Forwarding: this allows you to copy an incoming data stream to another port so that you can have one server for execution only and one for data persistence.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Data Filtering: transform and redirect data based at 10GE speed. Reformat XML to binary e.g&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Port Forwarding to Multicast: forward a filtered or unfiltered data stream as a multicast stream&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;BGP/IGMP Routing: save a fortune on hardware and a network stack traversal too!&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Port Forwarding to Multicast by topic: forward a filtered or unfiltered data stream as a multicast stream by topic&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Port Failover: If your server fails, the feed data can automatically be transferred to another port electrically.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Timestamping of packets: at +-5 nanosecond resolution.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Object Serialisation: data formatted to binary - no parsing.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;Data hashing: Listening to the A and the B? implement a "group feed" on the card&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family: arial;"&gt;QOS marking: Packets can be marked with an appropriate quality of service to be expedited by the network.&lt;/span&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/3778948-8540553892471232561?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/8540553892471232561/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=8540553892471232561' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8540553892471232561'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8540553892471232561'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/02/what-to-do-with-your-fpga-enabled.html' title='What to do with your FPGA Enabled Network Card'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7336108383499407778</id><published>2011-02-02T12:23:00.006Z</published><updated>2011-02-03T11:28:17.382Z</updated><title type='text'>Buy-side Technology European Summit 2011</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;I'm moderating the panel at the above &lt;/span&gt;&lt;a style="font-family: arial;" href="http://ev801.eventive.incisivecms.co.uk/static/programme"&gt;conference&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.  Here's some notes I sent in:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;Market structure: Confronting the issues around market fragmentation, the impact of HFT and globalization&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;The future is multi-venue, multi-asset fusion trading using global VPLS networks with QoS and high precision time. &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;It's a war - you have to use engage in deep research and new techniques in order to win it . And you&lt;/span&gt;&lt;span style="font-family:arial;"&gt; must know every layer of your technology - down to the wires. If you're not processing on the network card - you're too slow. &lt;a href="http://enhyper.blogspot.com/2009/01/micro-trading-engines.html"&gt;Microtrading&lt;/a&gt; engines are effectively here.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Economic situation: New risks resulting from the financial landscape and the implications for technology&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;I predict the move to a dynamic cost of market data and trading leading to a growth in liquidity and the emergence of financial cryptography techniques to mitigate market risk. Ideas such as &lt;a href="http://iang.org/papers/triple_entry.html"&gt;Triple Entry Accounting &lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;allowing third party risk analytics.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Technological developments: What are the opportunities created by new technologies such as cloud computing and SaaS?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;SaaS can be used for autonomic computing - dealing with failure dynamically sourcing services from a reputation based market place, paying for them by microcash.&lt;br /&gt;&lt;br /&gt;It's also a great place to do&lt;/span&gt;&lt;span style="font-family:arial;"&gt; regulatory transaction logging, audit and risk management in near-real time and where enterprise wide service level monitoring and security can take place a la &lt;a href="http://www.loggly.com/"&gt;Loggly&lt;/a&gt;. I described how this works &lt;a href="http://enhyper.blogspot.com/2010/08/infosec-data-analytics-and.html"&gt;here&lt;/a&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;New regulation: How are buy-side firms coping with the regulatory flood?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Largely ignoring it.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;With regards The 15:50 Panel&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I think the buy-side would like to see is a transparency from liquidity providers. In particular, older technology is prone to "queue allocation" due to fan-in/fan-out techniques which is opaque and can be seen as unfair and often the cause of friction. What would help is detailed performance stats (internal timings, distribution latencies) and new technology: multicast data distribution by topic in binary and high speed dedicated trading connections straight to the matching engine infra rather than fan-in via multiple tiers.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mitigating the cost of accessing multiple trading venues&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Standard pricing and transparency would be a good start. How about dynamic pricing for market data and cost of trade. Combine this with a "reputation index" - ie the likelihood of being filled, this would lead to a dynamic, fair market system.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ensuring effective liquidity access&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;See above&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Consolidated tape: What the buy-side really want&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Profitability&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How are the buy-side planning to prepare for new regulation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;We need new thinking on how we achieve transparency whilst enabling the regulators access to transactional data otherwise we'll fall victim to centralisation which would kill the markets. One good example would be logging transaction information to the cloud in a secure way for post transactional analytics.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;How equipped are the buy-side from a technology standpoint in the front middle and back office? Which areas will see less or more investments?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;This is an area which is widely neglected and opens the opportunity for risk.&lt;br /&gt;&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/3778948-7336108383499407778?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7336108383499407778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7336108383499407778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7336108383499407778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7336108383499407778'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/02/buy-side-technology-european-summit.html' title='Buy-side Technology European Summit 2011'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-8154658501792170060</id><published>2011-01-30T17:09:00.002Z</published><updated>2011-01-30T17:14:53.544Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='conference'/><category scheme='http://www.blogger.com/atom/ns#' term='fx trading'/><category scheme='http://www.blogger.com/atom/ns#' term='hft'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic trading'/><title type='text'>Mankoff Company 2nd Annual Ultra Low Latency</title><content type='html'>I've been kindly invited to speak at another HFT conference in London. &lt;a href="http://www.themankoffcompany.com/FXLondonHFT/"&gt;The 2nd Annual Ultra Low Latency: Trading Opportunities and Development in FX and other asset classes&lt;/a&gt; run by the Mankoff Company to be held at the Grange Holborn, London on the 23rd March 2011.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;div&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/3778948-8154658501792170060?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/8154658501792170060/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=8154658501792170060' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8154658501792170060'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8154658501792170060'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/01/mankoff-company-2nd-annual-ultra-low.html' title='Mankoff Company 2nd Annual Ultra Low Latency'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4539127303336419941</id><published>2011-01-26T11:07:00.002Z</published><updated>2011-01-26T11:10:45.699Z</updated><title type='text'>Wireshark Remoting</title><content type='html'>&lt;span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: 'Times New Roman'; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; font-size: medium;"&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial,sans-serif; font-size: 13px;"&gt;&lt;span class="il" style="background-color: rgb(169, 218, 146); color: rgb(34, 34, 34);"&gt;&lt;/span&gt;The technique whereby a feed handler data is captured and this feed capture is pulled back to your local workstation, for easier analysis and inspection. For more information, see:&lt;a style="color: rgb(51, 51, 204);"&gt;&lt;span class="Apple-converted-space"&gt; &lt;/span&gt;http://wiki.wireshark.org/&lt;wbr&gt;CaptureSetup/Pipes&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Prerequisites.&lt;br /&gt;&lt;br /&gt;1) You are using SSH keys to log in to engines;&lt;br /&gt;&lt;br /&gt;2) Your ssh-agent is running (Ubuntu desktops) with your SSH keys added to the keyring.&lt;br /&gt;    Most Ubuntu desktops will run ssh-agent for you on login.&lt;br /&gt;&lt;br /&gt;3) wireshark is installed on your workstation;&lt;br /&gt;    sudo aptitude install wireshark&lt;br /&gt;&lt;br /&gt;4) tshark is installed on the engine;&lt;br /&gt;    sudo aptitude install tshark&lt;br /&gt;&lt;br /&gt;5) You are in the 'wireshark' group on the engine,&lt;br /&gt;    and the relevant Linux capabilities are set up as per&lt;br /&gt;   &lt;span class="Apple-converted-space"&gt; &lt;/span&gt;&lt;a href="http://wiki.wireshark.org/CaptureSetup/CapturePrivileges" target="_blank" style="color: rgb(51, 51, 204);"&gt;http://wiki.wireshark.org/&lt;wbr&gt;CaptureSetup/CapturePrivileges&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;A typical Bash command line looks like this (on your local workstation):&lt;br /&gt;&lt;br /&gt;$ wireshark -k -i &lt;(ssh hostname tshark -w- -p -i eth1 -f \'tcp portrange 4000-4010\')&lt;br /&gt;&lt;br /&gt;Let's review exactly what these arguments mean.&lt;br /&gt;&lt;br /&gt;For the local wireshark invocation:&lt;br /&gt;The '-k' flag means 'start capturing immediately'.&lt;br /&gt;The '-i' flag tells wireshark to get its input from a pipe.&lt;br /&gt;&lt;br /&gt;The &lt;(...) bash construct is a pipeline invocation, which runs 'tshark' remotely on matrab (in this example) to capture from interface eth1&lt;br /&gt;&lt;br /&gt;'ssh hostname tshark' runs tshark, the command-line version of wireshark, remotely on hostname.&lt;br /&gt;&lt;br /&gt;The '-w-' flag means: write the raw PCAP format output captured by wireshark, to the standard output of the ssh remoted command, so that the local wireshark GUI on your workstation will pick up the feed.&lt;br /&gt;&lt;br /&gt;The '-i' flag specifies the physical interface upon which to tap the traffic. This can only be a single logical Linux network interface.&lt;br /&gt;&lt;br /&gt;If you need to capture traffic on more than one interface at once, you will need to configure a bridge interface. This is out of scope for this example. Typically this is only used for non-invasive captures using passive network taps.&lt;br /&gt;&lt;br /&gt;Typically, the argument passed to the '-i' flag to tshark is chosen by using the Linux-specific command 'ip route get x.x.x.x' to find the physical Ethernet interface where a feed handler is running.&lt;br /&gt;&lt;br /&gt;In this example, we used 'ip route get 10.69.14.16' to find the physical interface which matrab uses to reach an EBS Ai on the A-feed at Equinix LD4; eth1.&lt;br /&gt;&lt;br /&gt;The '-p' flag tells tshark NOT to put the interface into 'promiscuous mode' -- a special hardware mode where a network adapter will pass traffic up the network stack, even if it isn't addressed to any of the *hardware addresses* the adapter is configured for.&lt;br /&gt;&lt;br /&gt;Typically this is only needed for closer inspection, or if it's suspected that network addressing is incorrectly configured at either end of a feed. Promiscuous mode carries a penalty in that the system must then process every single packet physically received.&lt;br /&gt;&lt;br /&gt;Finally, the '-f' flag specifies a PCAP style filter expression. The syntax for these expressions is NOT the same as the wireshark filter language; it can be found in the manual page for pcap-filter (man 7 pcap-filter).&lt;br /&gt;&lt;br /&gt;In this example, we are asking only for all TCP traffic with port numbers between 4000-4010 in *either* the destination *or* source port fields.&lt;br /&gt;&lt;br /&gt;PCAP filters are implemented inside the Linux kernel using a virtual CPU. Just-in-time assembly is used to convert the filters to x86 machine language for fast capture. The virtual machine, LPF, is based closely on the original Berkeley Packet Filter (BPF) design from BSD. The virtual machine has 8-bit opcodes, and 32-bit addressing modes.&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/3778948-4539127303336419941?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4539127303336419941/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4539127303336419941' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4539127303336419941'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4539127303336419941'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/01/wireshark-remoting.html' title='Wireshark Remoting'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5835767429185805926</id><published>2011-01-14T10:42:00.003Z</published><updated>2011-01-14T14:42:44.320Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='high performance computing'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic trading'/><title type='text'>High Frequency Trading Conferences</title><content type='html'>&lt;span style="font-family:arial;"&gt;I've been kindly asked to speak at two conferences this year: The first is &lt;a href="http://www.hifreqtrade.invantage-group.com/"&gt;HIFREQ 2011&lt;/a&gt; on February the 24th. I'm on the panel with Prof Dave Cliff talking about next generation tech for HFT.&lt;br /&gt;&lt;br /&gt;I'm also speaking at &lt;a href="http://www.terrapinn.com/2011/hftamsterdam/"&gt;The High Frequency Trading World Conference&lt;/a&gt; in Amsterdam on the 7-9th June 2011.&lt;br /&gt;&lt;br /&gt;Things I'll be talking about:&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The latest technology for market data acquisition and parsing, both in hardware and techniques using parallelised software.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The role of &lt;/span&gt;&lt;span style="font-size:100%;"&gt;FPGA, DSP and Memristors&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The future of XML&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Shared and reflective memory for market fusion&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;CPU instructions for vectorisation and IO parallelism&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;CPU analysis tools &lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Kernel techniques for high performance&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Global layer 2 networks and VPLS&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt; Multicast routing in software&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Differential trading&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;High precision global time&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The importance of &lt;/span&gt;&lt;span style="font-size:100%;"&gt;platform analytics&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family: arial;"&gt;Very grateful for both opportunities as I don't get out much :-)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5835767429185805926?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5835767429185805926/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5835767429185805926' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5835767429185805926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5835767429185805926'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/01/high-frequency-trading-conferences.html' title='High Frequency Trading Conferences'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5556640390345565312</id><published>2011-01-05T12:48:00.005Z</published><updated>2011-01-18T16:39:43.302Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='strategy development'/><category scheme='http://www.blogger.com/atom/ns#' term='strategy'/><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Google's Strategy</title><content type='html'>&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;I listened to a series of predictions by Mark Anderson of Strategy News Service several nights ago on &lt;a href="http://www.bbc.co.uk/programmes/p00cr1wm"&gt;Global Business&lt;/a&gt; during a bout of insomnia and was intrigued by his prediction that "Google has lost its way", "doesn't know what business they are in" and were "a rudderless organisation".&lt;/span&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;With regard to what business Google are in, my analysis is that they are in the data business: collection, analysis, enrichment and dissemination. The fact that they make money out of ads is coincidental and is indeed predicated on this, without which, targeting of ads would be impossible. The fact that they do it so successfully gives this strategy provenance. &lt;br /&gt;&lt;br /&gt;With regards strategic direction, I can see where Mark Anderson is coming from, having done and MBA at the OU and the Certificate in Company Direction at the IOD. He's talking about the classic model of top-down corporate strategy development (which is rudimentary and heuristic.)&lt;br /&gt;&lt;br /&gt;Strategic direction is usually driven&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; by external marketing campaigns and salesmanship rather than the day-to-day expertise of the workforce as it's much easier dealing with external consultants, vendors and pundits. You do pay for their opinion after all and you're not accountable to them but, most of all, they'll tell you what you want to hear or sell you what their paymasters tell them to and buy you a nice lunch too.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;The fact that, in general,  the  workforce is ignored and their tacit knowledge is never made  explicit, analysed, persisted and incorporated into strategic direction is the sad state of  knowledge management. It is mostly due to fear of the workforce and their expertise together with a fear of failure.&lt;br /&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;Perhaps Google is different (I don't know as I've neither worked there nor talked to any of their employees) in that they are driven by the expertise of their developers and develop products which best fit the data they have. Strategy may be bottom up and may be derived from the expertise of the many clever people who work there. Does this make them rudderless? Perhaps but&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt; the "rudder" developed by  most organisations is often generic at best and irrelevant in practise.  I think I'd rather go with my perception of how Google develops  strategy&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5556640390345565312?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5556640390345565312/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5556640390345565312' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5556640390345565312'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5556640390345565312'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2011/01/googles-strategy.html' title='Google&apos;s Strategy'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3468795655317592371</id><published>2010-11-25T10:33:00.003Z</published><updated>2010-11-25T10:52:19.531Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><title type='text'>Visualisation Tools</title><content type='html'>&lt;span style="font-family:arial;"&gt;Elie has sent me links to two tools - &lt;a href="http://tulip.labri.fr/TulipDrupal/?q=node/601"&gt;Tulip&lt;/a&gt; and &lt;a href="http://mkweb.bcgsc.ca/circos/"&gt;Circos&lt;/a&gt;. There's a video of Tulip in action here.&lt;br /&gt;&lt;br /&gt;&lt;object height="390" width="640"&gt;&lt;param name="movie" value="http://www.youtube.com/v/A3Fc_yiGXpA&amp;amp;rel=0&amp;amp;hl=fr_FR&amp;amp;feature=player_embedded&amp;amp;version=3"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed src="http://www.youtube.com/v/A3Fc_yiGXpA&amp;amp;rel=0&amp;amp;hl=fr_FR&amp;amp;feature=player_embedded&amp;amp;version=3" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" height="390" width="640"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;This is a useful tool for visualisation of trades and market data and has proved invaluable.&lt;br /&gt;&lt;br /&gt;A variant of the Circos approach was used quite effectively to replay a time series of equities trades by sector to end users showing their P and L and risk. Today it's used for multi-venue market visualisation.&lt;br /&gt;&lt;br /&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/3778948-3468795655317592371?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3468795655317592371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3468795655317592371' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3468795655317592371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3468795655317592371'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2010/11/visualisation-tools.html' title='Visualisation Tools'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-551824661377013264</id><published>2010-11-24T21:12:00.003Z</published><updated>2010-11-24T21:20:47.039Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='low latency'/><title type='text'>Layers are for Cakes - Not Software</title><content type='html'>&lt;span style="font-family:arial;"&gt;This erudite quote comes from &lt;a href="http://portal.acm.org/citation.cfm?id=1117403&amp;amp;preflayout=flat"&gt;Performance Anti-patterns by Bart Smaalders&lt;/a&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SOFTWARE LAYERING&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Many software developers become fond of using layering&lt;/span&gt;&lt;span style="font-style: italic;"&gt; to provide various levels of abstraction in their software.&lt;/span&gt;&lt;span style="font-style: italic;"&gt; While layering is useful to some extent, its incautious&lt;/span&gt;&lt;span style="font-style: italic;"&gt; use significantly increases the stack data cache footprint,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; TLB (translation look-aside buffer) misses, and function&lt;/span&gt;&lt;span style="font-style: italic;"&gt; call overhead. Furthermore, the data hiding often forces&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;either the addition of too many arguments to function&lt;/span&gt;&lt;span style="font-style: italic;"&gt; calls or the creation of new structures to hold sets of argu&lt;/span&gt;&lt;span style="font-style: italic;"&gt;ments. Once there are multiple users of a particular layer,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; modifications become more difficult and the performance&lt;/span&gt;&lt;span style="font-style: italic;"&gt; trade-offs accumulate over time. A classic example of this&lt;/span&gt;&lt;span style="font-style: italic;"&gt; problem is a portable application such as Mozilla using&lt;/span&gt;&lt;span style="font-style: italic;"&gt; various window system toolkits; the various abstraction&lt;/span&gt;&lt;span style="font-style: italic;"&gt; layers in both the application and the toolkits lead to&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;rather spectacularly deep call stacks with even minor&lt;/span&gt;&lt;span style="font-style: italic;"&gt; exercising of functionality. While this does produce a&lt;/span&gt;&lt;span style="font-style: italic;"&gt; portable application, the performance implications are&lt;/span&gt;&lt;span style="font-style: italic;"&gt; significant; this tension between abstraction and imple&lt;/span&gt;&lt;span style="font-style: italic;"&gt;mentation efficiencies forces us to reevaluate our imple-&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;mentations periodically. In general, layers are for cakes,&lt;/span&gt;&lt;span style="font-style: italic;"&gt; not for software.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-551824661377013264?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/551824661377013264/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=551824661377013264' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/551824661377013264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/551824661377013264'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2010/11/layer-are-for-cakes-not-software.html' title='Layers are for Cakes - Not Software'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5710964253694460367</id><published>2010-11-05T17:49:00.002Z</published><updated>2010-11-05T17:54:53.407Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='astrology'/><title type='text'>Smart Almanac</title><content type='html'>My friend Elie has written this clever on line application. Check it out: &lt;a href="http://www.smartalmanac.com"&gt;Smart Almanac&lt;/a&gt; is the first astrological application which computes favorable time frames for actions you may have to perform in your daily life, this is the perfect astrological assistant to organize your schedule hourly.&lt;br /&gt;&lt;br /&gt;Quickly get a 400+ pages analysis report that will tell you hourlywhen to act in your favor, when the planets do support your action, given your natal chart, and your current location on earth.&lt;br /&gt;A large choice of questions among 9 themes is available.&lt;br /&gt;&lt;br /&gt;Bring the results with you along the the day : with the iCalendar option, synchronize with your mobile phone !&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5710964253694460367?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5710964253694460367/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5710964253694460367' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5710964253694460367'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5710964253694460367'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2010/11/smart-almanac.html' title='Smart Almanac'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7926313409358993704</id><published>2010-08-02T23:51:00.003+01:00</published><updated>2010-08-03T00:00:13.915+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information security process'/><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security Policy'/><title type='text'>Infosec Data Analytics and Visualisation</title><content type='html'>I gave &lt;a href="https://docs.google.com/present/edit?id=0AUfC78OOkIUXZGd2OHpjdjZfNDMwaHNwY3NtYzQ&amp;amp;hl=en"&gt;this talk&lt;/a&gt; at the IISYG last Friday. It was well received thanks to the reading of Raffael Marty's excellent work and &lt;a href="http://www.loggly.com/blog/"&gt;blogging on loggly&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;It's a nice idea but the key to success is getting application developers to adopt the logging mechanism and for team leaders to understand transactions and enforce teams to use them.  There were many questions, mainly about the security of sending your logs to a third party.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7926313409358993704?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7926313409358993704/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7926313409358993704' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7926313409358993704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7926313409358993704'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2010/08/infosec-data-analytics-and.html' title='Infosec Data Analytics and Visualisation'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-9028532322983478170</id><published>2010-04-01T02:00:00.005+01:00</published><updated>2010-04-01T03:16:16.911+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Parallel computing'/><category scheme='http://www.blogger.com/atom/ns#' term='Operating Systems'/><category scheme='http://www.blogger.com/atom/ns#' term='IPC'/><title type='text'>Capability Operating Systems</title><content type='html'>This week Ben Laurie &lt;a href="http://www.links.org/?p=905"&gt;asks&lt;/a&gt; about &lt;a href="http://en.wikipedia.org/wiki/Capability-based_security"&gt;capabilities&lt;/a&gt; in mainstream operating systems. Coincidentally, I was also tasked to investigate &lt;a href="http://en.wikipedia.org/wiki/Mach_(kernel)"&gt;Mach Ports&lt;/a&gt; this week. According to the &lt;a href="http://www.gnu.org/software/hurd/microkernel/mach/port.html"&gt;GNU Hurd wiki&lt;/a&gt;, "Mach Ports are Capabilities".&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Okay, GNU Hurd is not exactly mainstream. But OS X is &lt;a href="http://blog.intego.com/2010/03/02/mac-os-x-installed-base-nearly-11-in-us/"&gt;now&lt;/a&gt; installed in almost 11% of the computers in the US (arguably higher in more technical user populations). And Mach Ports are clearly part of OS X (including iPhone), but not widely used. Michael Weber &lt;a href="http://www.foldr.org/~michaelw/log/computers/macosx/task-info-fun-with-mach"&gt;points out&lt;/a&gt; that his IPC example code has found its way into the &lt;a href="http://en.wikipedia.org/wiki/Chromium_(web_browser)"&gt;Chromium&lt;/a&gt; project. Maybe it's just a coincidence that Chrome was the only &lt;a href="http://www.techvibes.com/blog/google-chrome-pwns-all-at-cansecwest"&gt;undefeated browser&lt;/a&gt; at the recent CanWest security conference in Vancouver last week.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;So I am left to wonder what is the difference between these two concepts of capabilities, and what does Ben think OS X needs. Is it just a matter of making these services more visible?&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-9028532322983478170?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/9028532322983478170/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=9028532322983478170' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9028532322983478170'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9028532322983478170'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2010/04/capability-operating-systems.html' title='Capability Operating Systems'/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-14117897009458123</id><published>2009-01-20T21:30:00.000Z</published><updated>2009-01-21T00:45:36.595Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='micro trading engines'/><category scheme='http://www.blogger.com/atom/ns#' term='SSD'/><category scheme='http://www.blogger.com/atom/ns#' term='System on chip'/><category scheme='http://www.blogger.com/atom/ns#' term='MMC'/><title type='text'>Micro Trading Engines</title><content type='html'>&lt;span style="font-family:arial;"&gt;In the search for low latency, the minimisation of hops or stack traversals is key. So here's a fairly obvious idea perhaps, but one I've yet to encounter in the real world.&lt;br /&gt;&lt;br /&gt;If I were designing the pragmatic ideal trading engine, i.e. one which would be able to sit in a today's data center, I'd be looking&lt;span style="font-family:arial;"&gt; an add in card-based solution with optical air inter-card interconnects - similar to the sli/crossfire approach taken to link multiple graphics card.&lt;br /&gt;&lt;br /&gt;External interfaces would be fibre and multiple, 10GE capable at present rates so that I could accept multiple MPI IO streams for configurable bandwidth delivery. &lt;br /&gt;&lt;br /&gt;Persistence would be staged from high speed ram through to SSD (or perhaps memristor when it hits main stream.)&lt;br /&gt;&lt;br /&gt;Processing would be SoC with DSP, GPGPU, MMC CISC integrated with on chip with multi-gigabit optical quantum dot interconnects.&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Ideally the server chassis holding the cards would be in an exchange-mart (sic) where multiple exchanges would co-locate - probably somewhere cold, geodesic with sustainable power (Iceland?)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&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/3778948-14117897009458123?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/14117897009458123/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=14117897009458123' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/14117897009458123'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/14117897009458123'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2009/01/micro-trading-engines.html' title='Micro Trading Engines'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7479012743877287983</id><published>2008-07-08T08:54:00.003+01:00</published><updated>2008-07-08T09:06:09.524+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='news analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='community of interest'/><title type='text'>Temporal News Signatures Used to Track Disease</title><content type='html'>&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;Nice to see application of the techniques I described in my paper "&lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.com/content/OR49paper.doc"&gt;Community-of-Interest Predicated Program Trading&lt;/a&gt;&lt;span style="font-family:arial;"&gt;" used to &lt;/span&gt;&lt;a style="font-family: arial;" href="http://blog.wired.com/wiredscience/2008/07/researchers-tra.html"&gt;track disease&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;If they follow my logic, they'll use community expertise to do the analysis, annotation, recategorisation and dissemination to peer interest groups. Then it will be possible to build a reputation based analytics platform to summarise the trend, relate it to previous events and capture side-effects...&lt;/span&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/3778948-7479012743877287983?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7479012743877287983/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7479012743877287983' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7479012743877287983'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7479012743877287983'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/07/temporal-news-signatures-used-to-track.html' title='Temporal News Signatures Used to Track Disease'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7027395222835409903</id><published>2008-05-27T23:23:00.001+01:00</published><updated>2008-05-27T23:25:20.154+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='idea management'/><category scheme='http://www.blogger.com/atom/ns#' term='open source intelligence'/><title type='text'>Open Source Intelligence in Finance</title><content type='html'>&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_360cfrkw9fw" frameborder="0" height="342" width="410"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Presentation delivered to the FITE Club in 2005.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7027395222835409903?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7027395222835409903/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7027395222835409903' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7027395222835409903'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7027395222835409903'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/open-source-intelligence-in-finance_27.html' title='Open Source Intelligence in Finance'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2408724493391114456</id><published>2008-05-27T23:10:00.003+01:00</published><updated>2008-05-27T23:14:00.496+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC Architecture'/><title type='text'>Business Driven Platform Architecture</title><content type='html'>&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_337m9kjn9xs" frameborder="0" height="342" width="410"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Old presentation from 2005 where I attempted to introduce infrastructure people to the pressures the business were facing then as now...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-2408724493391114456?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2408724493391114456/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2408724493391114456' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2408724493391114456'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2408724493391114456'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/old-presentation-from-2005-where-i.html' title='Business Driven Platform Architecture'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6602870882013352335</id><published>2008-05-23T07:46:00.009+01:00</published><updated>2008-05-23T15:56:27.870+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='kurz and lang'/><category scheme='http://www.blogger.com/atom/ns#' term='quantitative analytics'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='Monte Carlo'/><category scheme='http://www.blogger.com/atom/ns#' term='signal analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='bratwurst'/><title type='text'>Haskell, HPC and Crypto Get Together 22nd May 2008</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SDZqfG3dkXI/AAAAAAAAAFA/uIyrnCNB580/s1600-h/P1000411.JPG"&gt;&lt;br /&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SDZqfG3dkXI/AAAAAAAAAFA/uIyrnCNB580/s320/P1000411.JPG" alt="" id="BLOGGER_PHOTO_ID_5203463502124913010" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_G86K0wbY_rs/SDZpUW3dkWI/AAAAAAAAAE4/UkjaKM5a9QI/s1600-h/P1000410.JPG"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; cursor: pointer;" src="http://3.bp.blogspot.com/_G86K0wbY_rs/SDZpUW3dkWI/AAAAAAAAAE4/UkjaKM5a9QI/s320/P1000410.JPG" alt="" id="BLOGGER_PHOTO_ID_5203462217929691490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Last night's get together was attended by about 15 men &lt;/span&gt;&lt;span style="font-family:arial;"&gt;(women in technology take note) &lt;/span&gt;&lt;span style="font-family:arial;"&gt;from a variety of backgrounds (students, cryptographers, investment bank staff.) Beers were consumed and nonsense talked - then we toddled off to &lt;a href="http://www.kurzandlang.com/"&gt;Kurz and Lang&lt;/a&gt; for some bratwurst around eight as is our tradition (from our days in Zurich with a well known Swiss bank.)&lt;br /&gt;&lt;br /&gt;The conclusion of the evening was that there is a place for Haskell in the city - why? Well  here's two extracts from and article on &lt;a href="http://neilmitchell.blogspot.com/2008/05/haskell-and-performance.html"&gt;Haskell and Performance&lt;/a&gt; on &lt;a href="http://planet.haskell.org/"&gt;Planet Haskell&lt;/a&gt; written by &lt;a href="http://neilmitchell.blogspot.com/"&gt;Neil Mitchell&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;b style="font-style: italic;"&gt;Haskell's multi-threaded performance is amazing&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;A lot of clever people have done a lot of clever work on making multi-threaded programming in Haskell both simple and fast. While low-level speed matters for general programming, for multi-threaded programming there are lots of much higher-level performance considerations. Haskell supports better abstraction, and can better optimise at this level, outperforming C.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;b style="font-style: italic;"&gt;The trend is for higher-level optimisation&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;As time goes buy, higher-level programs keep getting faster and faster. The ByteString work allows programmers to write high-level programs that are competitive with C. Performance enhancements are being made to the compiler regularly, pointer tagging, constructor specialisation etc. are all helping to improve things. More long term projects such as Supero and NDP are showing some nice results. Optimisation is a difficult problem, but progress is being made, allowing programs to be written in a higher-level.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;and that it would be a good idea to form a Functional Programming get together on a reasonably regular basis - so watch this space.&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/3778948-6602870882013352335?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6602870882013352335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6602870882013352335' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6602870882013352335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6602870882013352335'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/haskell-get-together-22nd-may-2008.html' title='Haskell, HPC and Crypto Get Together 22nd May 2008'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G86K0wbY_rs/SDZqfG3dkXI/AAAAAAAAAFA/uIyrnCNB580/s72-c/P1000411.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7885242957922489479</id><published>2008-05-21T23:02:00.001+01:00</published><updated>2008-05-21T23:04:48.748+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdf5'/><category scheme='http://www.blogger.com/atom/ns#' term='high performance computing'/><title type='text'>Financial Data Infrastructure with HDF5</title><content type='html'>&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_28269gqq7c7' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;Presentation given to the &lt;a href="http://www.fiteclub.org/meetings/20040901-Burnett.htm"&gt;FITE Club in 2004&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7885242957922489479?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7885242957922489479/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7885242957922489479' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7885242957922489479'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7885242957922489479'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/financial-data-infrastructure-with-hdf5.html' title='Financial Data Infrastructure with HDF5'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1092661542376231215</id><published>2008-05-21T22:50:00.003+01:00</published><updated>2008-07-21T23:53:38.743+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security incident management'/><category scheme='http://www.blogger.com/atom/ns#' term='crisis management'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security'/><category scheme='http://www.blogger.com/atom/ns#' term='disaster recovery'/><title type='text'>Crisis Resilient Architecture</title><content type='html'>&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_218chdws4dx" width="410" frameborder="0" height="342"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I gave this presentation at &lt;a href="https://www.informationsecuritysolutions.com/WebMenuPages/IISYG%20Presentations"&gt;IISyG in 2005&lt;/a&gt;&lt;/span&gt; to an audience of Infosec specialists. The talk was inspired by Dr Sally Leivesly of Newrisk Ltd who regularly appears on the BBC after terrorist incidents. She outlined combinatorial threat and area denial scenarios.&lt;br /&gt;&lt;br /&gt;Another influence was the amount of fuel required to power centralised data centers which, in times of crisis, may be hard to supply regularly. Then there is the strange notion that staff will have the desire and ability to travel to some remote data center regularly which frankly beggars belief. The whole BCP/DR scenario is, sadly, driven by regulators, auditors and policy wonks.&lt;br /&gt;&lt;br /&gt;So my take on the answer is that we need fabric/cloud computing, micro data centers and UWB MAN networks which can be up and running in an instant. Combined with the "crisis desktop", a bootable OS on a memory stick which can form a secure platform to access your virtual desktop. The parts are all there - all we need is the strategists to catch up...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1092661542376231215?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1092661542376231215/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1092661542376231215' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1092661542376231215'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1092661542376231215'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/crisis-resilient-architecture.html' title='Crisis Resilient Architecture'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3985754418285915784</id><published>2008-05-19T22:56:00.002+01:00</published><updated>2008-05-21T22:41:22.313+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Information Security Policy'/><title type='text'>Object-Orientated Security Policy</title><content type='html'>&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_187fs88hh4x' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3985754418285915784?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3985754418285915784/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3985754418285915784' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3985754418285915784'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3985754418285915784'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/object-orientated-security-policy.html' title='Object-Orientated Security Policy'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3299033173576543014</id><published>2008-05-14T10:05:00.005+01:00</published><updated>2008-05-14T14:40:38.334+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Policy'/><category scheme='http://www.blogger.com/atom/ns#' term='Inheritance'/><category scheme='http://www.blogger.com/atom/ns#' term='Object-oriented programming'/><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>RANT Talk - Object Orientated Security Policy</title><content type='html'>&lt;span style="font-family:arial;"&gt;I'm speaking at &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.acumin.co.uk/events/"&gt;RANT&lt;/a&gt;&lt;span style="font-family:arial;"&gt; on &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.blogspot.com/2008/01/object-orientated-security-policy-i.html"&gt;Object Orientated Security Policy&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.  This is a post implementation talk which will highlight the benefits of having a visual policy framework with executable procedures arranged in an inheritance hierarchy.&lt;br /&gt;&lt;br /&gt;The event  is being described as: &lt;span style="font-style: italic;"&gt;"Graeme’s rant will be looking into how the Security policy landscape is changing and how policies can no longer afford to be a loose collection of word documents seldom referred to. He will talk about how it is the business logic and rules of the organisation which are now becoming executable thanks to web services."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Details can be found here &lt;a target="_blank" href="http://www.google.com/calendar/event?action=TEMPLATE&amp;amp;tmeid=Y3ZpOTJrNnVsdmJvcjlvdTVnZTFraGV2MWcgcmdidXJuZXR0QG0&amp;amp;tmsrc=cmdidXJuZXR0QGdtYWlsLmNvbQ"&gt;&lt;img src="http://www.google.com/calendar/images/ext/gc_button1_en.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=eaa08553-396a-416f-b7da-65d56db56f41" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3299033173576543014?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3299033173576543014/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3299033173576543014' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3299033173576543014'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3299033173576543014'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/rant-talk-object-orientated-security.html' title='RANT Talk - Object Orientated Security Policy'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-695071882108007437</id><published>2008-05-12T13:24:00.002+01:00</published><updated>2008-05-15T11:21:03.064+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Risk Management'/><category scheme='http://www.blogger.com/atom/ns#' term='incremental risk management'/><title type='text'>Information Security - Risk Management Process</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SCg3Zdbas1I/AAAAAAAAAEo/d8Ijo413gNY/s1600-h/RiskManagement.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SCg3Zdbas1I/AAAAAAAAAEo/d8Ijo413gNY/s400/RiskManagement.png" alt="" id="BLOGGER_PHOTO_ID_5199466680335119186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Risk assessment is a mandatory activity under all the Information Security policy frameworks e.g. COBIT, ISO27001. However, risk assessment methodologies are point-in-time and don't deal with incremental risk as the above process does.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-695071882108007437?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/695071882108007437/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=695071882108007437' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/695071882108007437'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/695071882108007437'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/information-security-risk-management.html' title='Information Security - Risk Management Process'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G86K0wbY_rs/SCg3Zdbas1I/AAAAAAAAAEo/d8Ijo413gNY/s72-c/RiskManagement.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-434246563966552865</id><published>2008-05-12T09:17:00.012+01:00</published><updated>2008-05-22T13:40:19.785+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel computing'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Multi-core'/><category scheme='http://www.blogger.com/atom/ns#' term='geek beer'/><title type='text'>Haskell, HPC and Crypto - Beer in the Evening</title><content type='html'>&lt;span style="font-family:arial;"&gt;We're organising another "beer in the evening" event somewhere round about Smithfield in London to discuss Haskell, multi-core, HPC, Security and all sorts really - so if you fancy having a beer or two with a gang of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.urbandictionary.com/define.php?term=gnarlyhttp://www.urbandictionary.com/define.php?term=gnarly"&gt;gnarly&lt;/a&gt;&lt;span style="font-family:arial;"&gt;, middle-aged architects, programmers and scientists (attractive huh?) then you'll be very welcome. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;We will be meeting on the 22nd May - details are here &lt;a target="_blank" href="http://www.google.com/calendar/event?action=TEMPLATE&amp;amp;tmeid=MWxnNmtwZ3FuNjA5cHRqbGI3bWlvYmgwNGMgcmdiQGVuaHlwZXIuY29t&amp;amp;tmsrc=cmdiQGVuaHlwZXIuY29t"&gt;&lt;img src="http://www.google.com/calendar/images/ext/gc_button1_en-GB.gif" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold;"&gt;To participate&lt;/span&gt;, please add your name to the Doodle Poll entitled &lt;/span&gt;&lt;a style="font-family: arial;" href="http://doodle.ch/yb8eu9e56ppri3wp"&gt;Haskell + Beer&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. This is so we know how many buckets of chips to order...&lt;br /&gt;&lt;br /&gt;As All Bar One has now closed, &lt;span style="font-weight: bold;"&gt;we will be in &lt;/span&gt;&lt;a style="font-weight: bold;" href="http://www.beerintheevening.com/pubs/s/59/5984/Bishops_Finger/Barbican"&gt;the Bishop's Finger, Smithfield&lt;/a&gt;. I'm planning on getting there around 530pm. My mobile number is zero seven eight three zero three six eight zero two four - when you get there give me a call. There's a good chance we'll get some of the beers paid for too but no promises yet.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Topics for discussion/contention&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Crypto in Haskell (Dominic is Mr &lt;a href="http://www.haskell.org/crypto/"&gt;Haskell Crypto&lt;/a&gt; btw). Opportunities for parallelism (&lt;a href="http://www.actapress.com/PaperInfo.aspx?PaperID=32989&amp;amp;reason=500"&gt;e.g.&lt;/a&gt;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Is Haskell and multi-core the best solution to meet the projected demand for simulation in finance or has &lt;a href="http://enhyper.blogspot.com/2008/05/monte-carol-using-cots-fpga.html"&gt;FPGA&lt;/a&gt; yet to have it's day?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Challenges of Haskell and high performance messaging integration. 2.4 million messages per second (not transactions) are now possible using tools like LBM from &lt;a href="http://www.29west.com/"&gt;29West&lt;/a&gt;.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The K language (an APL derivative), Fortran, Objective-C, LISP and Smalltalk gained a small foothold in the eighties/nineties in quantitative analytics but C++ remained the main language of implementation due to availability of skillset (K programmers are like hen's teeth.) Java and now C# are now the &lt;span style="font-style: italic;"&gt;de facto&lt;/span&gt; implementation languages but have serious issues for high frequency finance - will Haskell be able to make an impact or will it be another marginal language used by quants.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:arial;"&gt;Is Haskell capable of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&amp;amp;lang=ghc&amp;amp;lang2=java"&gt;high performance&lt;/a&gt;&lt;span style="font-family:arial;"&gt;?&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:arial;"&gt;Haskell and distributed memory (memcached) performance aspects&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:arial;"&gt;Haskell Data Parallelism versus state of the art FPGA approaches. Check out &lt;a href="http://www.hpcplatform.com/"&gt;HPCPlatform&lt;/a&gt;'s offering btw.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-family:arial;"&gt;I hear rumours that Haskell is being rolled out to the HPC team of a major investment bank in Canary Wharf - watch this space...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;More topics very welcome.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=3fd4b634-57e7-48ff-8df1-b4a13f00d74d" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-434246563966552865?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/434246563966552865/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=434246563966552865' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/434246563966552865'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/434246563966552865'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/haskell-and-hpc-beer-in-evening.html' title='Haskell, HPC and Crypto - Beer in the Evening'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4236261207331328472</id><published>2008-05-11T23:56:00.004+01:00</published><updated>2008-05-12T00:06:10.465+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='collaboration'/><category scheme='http://www.blogger.com/atom/ns#' term='idea management'/><category scheme='http://www.blogger.com/atom/ns#' term='community of interest'/><title type='text'>Collaborative Web Services</title><content type='html'>&lt;span style="font-family: arial;"&gt;Collaboration was a theme that underlay some of fundamental concepts behind the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://youdevise.com/tradeideas/index.html"&gt;Trade Ideas platform from youDevise&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. This presentation highlights some of the many threads which prevailed at the time. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_131kg7fddgr" frameborder="0" height="342" width="410"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4236261207331328472?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4236261207331328472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4236261207331328472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4236261207331328472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4236261207331328472'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/collaborative-web-services.html' title='Collaborative Web Services'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-9153658985284474069</id><published>2008-05-11T23:43:00.002+01:00</published><updated>2008-05-11T23:52:15.372+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source intelligence'/><category scheme='http://www.blogger.com/atom/ns#' term='program trading'/><category scheme='http://www.blogger.com/atom/ns#' term='community of interest'/><title type='text'>Open Source Intelligence in Finance</title><content type='html'>&lt;span style="font-family: arial;"&gt;A presentation given in 2005 to the &lt;a href="http://www.fiteclub.org/"&gt;FITE Club&lt;/a&gt;. This was the foundations to my paper on &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.com/content/OR49paper.doc"&gt;Community-of-Interest predicated Program Trading&lt;/a&gt;&lt;span style="font-family: arial;"&gt; which was presented at the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.orsoc.org.uk"&gt;Operational Research Society&lt;/a&gt;&lt;span style="font-family: arial;"&gt; Conference, &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.orsoc.org.uk/orshop/%28xpj10c55szowm5uozlqqloq4%29/orcontent.aspx?inc=or49_main.htm"&gt;OR49&lt;/a&gt;&lt;span style="font-family: arial;"&gt; in September 2007.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_116g5mks6cq" frameborder="0" height="342" width="410"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-9153658985284474069?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/9153658985284474069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=9153658985284474069' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9153658985284474069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9153658985284474069'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/open-source-intelligence-in-finance.html' title='Open Source Intelligence in Finance'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7344799690901406102</id><published>2008-05-11T23:19:00.002+01:00</published><updated>2008-05-11T23:21:44.488+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='data architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='grid'/><title type='text'>HPC=Grid+Data+FPGA</title><content type='html'>&lt;span style="font-family: arial;"&gt;Another presentation from the past. Presented at Platform's Grid conference in Paris in 2006. &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_107dcpzsvhr" frameborder="0" height="342" width="410"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7344799690901406102?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7344799690901406102/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7344799690901406102' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7344799690901406102'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7344799690901406102'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/hpcgriddatafpga.html' title='HPC=Grid+Data+FPGA'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1590762905006216831</id><published>2008-05-11T22:56:00.003+01:00</published><updated>2008-05-11T23:19:18.571+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='COTS'/><category scheme='http://www.blogger.com/atom/ns#' term='Monte Carlo'/><category scheme='http://www.blogger.com/atom/ns#' term='SCIMARK'/><category scheme='http://www.blogger.com/atom/ns#' term='NIST'/><title type='text'>Monte Carlo Using COTS FPGA</title><content type='html'>A few years ago I put together this presentation based on some work I did with some guys at Southampton University on embedding Monte Carlo onto FPGA. At the time we used System C and the C code from the Monte Carlo implementation in the &lt;a href="http://math.nist.gov/scimark2/"&gt;SCIMARK 2.0&lt;/a&gt; Benchmark, something I've used &lt;a href="http://enhyper.com/content/JavaBenchmarks/"&gt;to great effect in the past&lt;/a&gt;. The implementation was niaive and simplistic but it was used to start the HPC movement that's been a la mode in the City for a while...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;iframe src='http://docs.google.com/EmbedSlideshow?docid=dgv8zcv6_91gsmcx3dj' frameborder='0' width='410' height='342'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1590762905006216831?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1590762905006216831/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1590762905006216831' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1590762905006216831'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1590762905006216831'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/monte-carol-using-cots-fpga.html' title='Monte Carlo Using COTS FPGA'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4275987939653060770</id><published>2008-05-11T22:24:00.003+01:00</published><updated>2008-05-11T22:52:39.295+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source'/><category scheme='http://www.blogger.com/atom/ns#' term='security engineering'/><category scheme='http://www.blogger.com/atom/ns#' term='OpenTech 2008'/><title type='text'>OpenTech 2008</title><content type='html'>&lt;a style="font-family: arial;" href="http://www.ukuug.org/events/opentech2008/"&gt;OpenTech2008&lt;/a&gt;&lt;span style="font-family:arial;"&gt; is being held in London on the 5th July 2008.  The conference is "an informal, low cost one-dayer on technology, society and low-carbon living,  featuring Open Source ways of working and technologies that anyone can have a go at."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;I've been invited onto the security panel by &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.apache-ssl.org/ben.html"&gt;Ben Laurie&lt;/a&gt;&lt;span style="font-family:arial;"&gt; of Google (&lt;/span&gt;&lt;a style="font-family: arial;" href="http://code.google.com/p/google-caja/"&gt;Caja&lt;/a&gt;&lt;span style="font-family:arial;"&gt;) and &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.apache-ssl.org/"&gt;Apache SSL&lt;/a&gt;&lt;span style="font-family:arial;"&gt; fame. I'm going to be talking about&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;beancounter-led regulation in financial markets and how it has killed security engineering...&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4275987939653060770?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4275987939653060770/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4275987939653060770' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4275987939653060770'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4275987939653060770'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/opentech-2008.html' title='OpenTech 2008'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1084289250068823130</id><published>2008-05-08T10:39:00.003+01:00</published><updated>2008-05-08T14:28:26.083+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='CUDA'/><category scheme='http://www.blogger.com/atom/ns#' term='Parallel computing'/><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='Hardware'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><category scheme='http://www.blogger.com/atom/ns#' term='Nvidia'/><category scheme='http://www.blogger.com/atom/ns#' term='Graphics processing unit'/><category scheme='http://www.blogger.com/atom/ns#' term='ACM Queue'/><title type='text'>CUDA - GPU Programming Framework from nVidia</title><content type='html'>&lt;span style="font-family:arial;"&gt;Catching up with some reading this morning, I picked up a series of articles from the Mar/April edition of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.acmqueue.org/"&gt;ACM Queue&lt;/a&gt;&lt;span style="font-family:arial;"&gt;. In particular, &lt;a href="http://en.wikipedia.org/wiki/CUDA"&gt;CUDA&lt;/a&gt; which was released by Nvidia last year. I read the article "Scalable Parallel Programming with CUDA" which can be found &lt;a href="http://mags.acm.org/queue/20080304/"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The article identifies three key abstractions, hierarchical thread groups, shared memories and barrier synchronisation. CUDA is based on C with extensions for parallelisation - much like &lt;a href="http://en.wikipedia.org/wiki/Handel-C"&gt;Handel-C&lt;/a&gt;. The difference is that Handel-C was FPGA based whilst CUDA is for GPU with its built-in floating point capability. There are simple and straightforward code examples showing parallel threading and memory sharing which was always an issue in my mind with FPGA: the leap of faith with Handel-C was what to do with the data set you generated in a Monte Carlo simulation.&lt;br /&gt;&lt;br /&gt;This question has been perplexing developers on the &lt;a href="http://forums.nvidia.com/lofiversion/index.php?t30169.html"&gt;CUDA forums at Nvidia&lt;/a&gt; too - but it looks like there's been progress as outlined in this presentation on &lt;a href="http://developer.download.nvidia.com/compute/cuda/sdk/website/projects/MonteCarlo/doc/MonteCarlo.pdf"&gt;Monte Carlo Options Pricing&lt;/a&gt; paper on the Nvidia developer site. However, the algorithm outlined in the paper is trivial, the secret being the generation of quasi-random numbers enabling quick convergence. Then filtration close to the data so you're  not schlepping large lumps of data unnecessarily.&lt;br /&gt;&lt;br /&gt;Then the next logical step is to make this a service. The appetite is reckoned to be about 5 trillion simulations per day in the average organisation according to a quant chum of mine. Combine this with S3 for asynchronous storage and you have the makings of a nice little business I think.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=456bedf4-50ef-419d-8ba3-7816062f77b5" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1084289250068823130?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1084289250068823130/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1084289250068823130' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1084289250068823130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1084289250068823130'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/cuda-gpu-programming-framework-from.html' title='CUDA - GPU Programming Framework from nVidia'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5167233979700374443</id><published>2008-05-07T15:47:00.007+01:00</published><updated>2008-05-07T17:01:46.784+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC Architecture'/><title type='text'>Functional Programming Creeps into Job Specs</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;As predicted in this article from June 2007 "&lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.blogspot.com/2007/12/haskell-next-mainstream-programming.html"&gt;Haskell - the Next Mainstream Programming Language?&lt;/a&gt;&lt;span style="font-family:arial;"&gt;" - functional programming is getting into job specs...&lt;/span&gt; &lt;/span&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70786548"&gt;http://jobview.monster.com/GetJob.aspx?JobID=70786548&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70153611"&gt;http://jobview.mon&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70153611"&gt;ster.com/GetJob.as&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70153611"&gt;px?JobID=70153611&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70575524"&gt;http://jobview.mon&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70575524"&gt;ster.com/GetJob.aspx?JobID=70575524&lt;/a&gt;&lt;/span&gt;  &lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=67440522"&gt;http://jobview.monster.com/GetJob.aspx?JobID=67440522&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p class="MsoNormal"  style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70311202"&gt;http://jobview.mon&lt;/a&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;a href="http://jobview.monster.com/GetJob.aspx?JobID=70311202"&gt;ster.com/GetJob.aspx?JobID=70311202&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-style: italic;font-size:85%;" &gt; &lt;span id="TrackingJobBody" name="TrackingJobBody"  style="font-family:arial;"&gt;&lt;br /&gt;"You will have previous experience of designing and building distributed, fault tolerant systems in a commercial environment. Experience of multi threading, socket programming,&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"  style="font-family:arial;"&gt; network programming and functional programming languages (&lt;a href="http://haskell.org/" title="Haskell (programming language)" rel="homepage" target="_blank" class="zem_slink"&gt;Haskell&lt;/a&gt;, Ocaml, F#) will be an advantage."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;"&lt;/span&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody" style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;Experience&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;" id="TrackingJobBody" name="TrackingJobBody"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody" style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;with&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;" id="TrackingJobBody" name="TrackingJobBody"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody" style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;fu&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:78%;" &gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"  style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;"&gt;&lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;&lt;span style="font-size:85%;"&gt;nctiona&lt;/span&gt;&lt;span style="font-size:85%;"&gt;l&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="font-size:85%;"&gt;languag&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-size:85%;" &gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"  style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;font-size:13;" &gt;&lt;span style="color:black;"&gt;&lt;span style=";font-size:10;color:black;"  &gt;&lt;span style="font-size:85%;"&gt;es such as Haskell, &lt;a href="http://en.wikipedia.org/wiki/Erlang_%28programming_language%29" title="Erlang (programming language)" rel="wikipedia" target="_blank" class="zem_slink"&gt;Erlang&lt;/a&gt;, F#, Scheme&lt;/span&gt;&lt;span style="font-size:78%;"&gt;, &lt;/span&gt;&lt;span style="font-size:85%;"&gt;LISP, etc.,&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"  style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="line-height: 130%;font-size:13;" &gt;&lt;span style="color:black;"&gt;&lt;span style=";font-size:10;color:black;"  &gt;&lt;span style="font-style: italic;font-size:85%;" &gt; are greatly&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;appreciated.&lt;span style="font-weight: bold;"&gt;"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Bit of a scattergun approach in the last example perhaps? I wonder who writes the job specs - I guess the bizerati analystas high on the latest marketing  speak. I'm still confused about is the insistence on C++ with it's late binding and poor library coverage (compared to Java.) As illustrated by this graph from the paper below,  C++ is  slower than C - so why would you want to use it when speed is the ultimate criterion? Beats me.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SCHGe3VfhsI/AAAAAAAAAEU/X4Kk8tgFaVw/s1600-h/langs.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SCHGe3VfhsI/AAAAAAAAAEU/X4Kk8tgFaVw/s400/langs.png" alt="" id="BLOGGER_PHOTO_ID_5197653678514734786" border="0" /&gt;&lt;/a&gt;&lt;a class="link" href="http://enhyper.com/cgi-bin/jump.cgi?ID=821" target="top"&gt;An empirical comparison of C, C++, &lt;strong&gt;Java&lt;/strong&gt;, Perl, TCL and REXX for search/string processing&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;I'm also bemused at the use of C# - in light of the recent debacles at the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.blogspot.com/2007/11/lse-goes-boom-no-other-exchange-is.html"&gt;LSE&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.blogspot.com/2008/02/tokyo-exchange-goes-boom-is-a-link-to.html"&gt;TSE&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;br /&gt;&lt;br /&gt;One wonders who is in charge of algo and program trading strategy. I do hope they realise the advantages of a monadic language are not without performance implications and that without stream fusion and massively multi-core processors (with FPUs) the performance gains they seek are going to be rather elusive. Then there's the data issue - you have to crack that particular nut - and here's a clue - the answer's not xml or any of its bloated siblings.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span id="TrackingJobBody" name="TrackingJobBody"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:Helvetica Neue;font-size:130%;"  &gt;&lt;span style="line-height: 130%;font-size:13;" &gt;&lt;span style=";font-family:Arial;font-size:85%;color:black;"   &gt;&lt;span style=";font-family:Arial;font-size:10;color:black;"   &gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=0840bfbf-21ab-4e5b-aecd-d997d06c6748" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5167233979700374443?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5167233979700374443/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5167233979700374443' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5167233979700374443'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5167233979700374443'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/functional-programming-creeps-into-job.html' title='Functional Programming Creeps into Job Specs'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G86K0wbY_rs/SCHGe3VfhsI/AAAAAAAAAEU/X4Kk8tgFaVw/s72-c/langs.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7631217257000003589</id><published>2008-05-02T09:57:00.005+01:00</published><updated>2008-05-04T09:00:59.000+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='information security process'/><category scheme='http://www.blogger.com/atom/ns#' term='virus trend analysis'/><title type='text'>Information Security - Adaptive Virus Trend Analysis Process</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SBraMKEFlBI/AAAAAAAAAEM/l-UmoLH1vmM/s1600-h/KRIVirusAnalysis.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SBraMKEFlBI/AAAAAAAAAEM/l-UmoLH1vmM/s400/KRIVirusAnalysis.png" alt="" id="BLOGGER_PHOTO_ID_5195705022520071186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Virus Classification&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;Each virus is rated using the particular manufacturer's rating mechanism giving an independent benchmark. Escalation for high impact viruses is immediate and possibly would result in the security incident management process being invoked. Cumulative threat is also reported if there are more than 50% of medium threat.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Trend and Pattern analysis &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;I've instituted a qualitative and quantitative approach to virus analysis which delivers a modicum of business intelligence and facilitates escalation based on threat level.  &lt;br /&gt;&lt;br /&gt;Trending is twofold: year to date and historical highlighting monthly and annual trends. Seasonality is present in the year-to-date statistics whilst long term trend can be gauged over five years.&lt;br /&gt;&lt;br /&gt;Patterns in virus targeting are analysed per geographic location, business area, workstation and user. A history of infection is maintained so that repeated infection can be analysed further.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;br /&gt;Adaptive Sampling&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:85%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;An adaptive approach is taken to monitoring frequency. If an uplift in activity of 20% incurs, the monitoring frequency is doubled to a minimum of daily monitoring. If the trend is reversed for three monitoring periods, the frequency is  halved to a maximum of monthly sampling.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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/3778948-7631217257000003589?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7631217257000003589/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7631217257000003589' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7631217257000003589'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7631217257000003589'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/05/information-security-adaptive-virus.html' title='Information Security - Adaptive Virus Trend Analysis Process'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G86K0wbY_rs/SBraMKEFlBI/AAAAAAAAAEM/l-UmoLH1vmM/s72-c/KRIVirusAnalysis.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1913419894699641363</id><published>2008-04-27T18:44:00.004+01:00</published><updated>2008-05-04T09:01:34.148+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='breakfast'/><category scheme='http://www.blogger.com/atom/ns#' term='geek food'/><title type='text'>Geek Breakfast</title><content type='html'>&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Maintaining concentration all day every day when coding is no mean feat. It helps to have a good breakfast:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;H&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;alf a cup of Scott's Porage Oats&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Two handfuls of Holland and Barrett &lt;a href="http://www.hollandandbarrett.com/pages/product_detail.asp?pid=788"&gt;Omega Sprinkle&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One handful of Holland and Barrett dried goji berries, blueberry and cranberries mixed in equal proportions&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Tablespoon of &lt;a href="http://www.goodwebsite.co.uk/recipe_menu.htm"&gt;Good Oil&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Quarter of a pomegranate seeded&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Mix it all together and soak in milk and/or yoghurt overnight - delicious warm or cold. Finish off with a nice with glass of &lt;a href="http://www.jameswhite.co.uk/organics/organicveg.html"&gt;organic beetroot juice.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/3778948-1913419894699641363?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1913419894699641363/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1913419894699641363' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1913419894699641363'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1913419894699641363'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/04/geek-breakfast-maintaining.html' title='Geek Breakfast'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1266279093128156510</id><published>2008-04-21T15:57:00.005+01:00</published><updated>2008-05-07T15:25:29.437+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Graph Drawing'/><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='Social network'/><title type='text'>Graphduplex - Graph Coupling by Shared Attributes</title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Over at &lt;a href="http://www.semiosys.net/"&gt;Semiosys&lt;/a&gt;, Elie has been working on a new social &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;network analysis piece called &lt;a href="http://blog.semiophore.net/?p=17"&gt;GraphDuplex&lt;/a&gt;. GraphDuplex allows you to couple N graphs by shared attributes. The use of petals and histograms is an alternative to the traditional pie chart where sectors can easily be missed due to relative segment sizes. The thickness of the line denotes volume and can be easily also denote flow if the that were relevant. Acceleration could also be represented by a rotating decal with rotational speed indicated rate of change.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SAytPpBtFzI/AAAAAAAAAEE/FQpCiE8WDZc/s1600-h/graphduplex.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SAytPpBtFzI/AAAAAAAAAEE/FQpCiE8WDZc/s400/graphduplex.JPG" alt="" id="BLOGGER_PHOTO_ID_5191714954673985330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=e5759999-2455-410d-bee3-803e10163447" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1266279093128156510?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1266279093128156510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1266279093128156510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1266279093128156510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1266279093128156510'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/04/graphduplex-over-at-semiosys-elie-has.html' title='Graphduplex - Graph Coupling by Shared Attributes'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_G86K0wbY_rs/SAytPpBtFzI/AAAAAAAAAEE/FQpCiE8WDZc/s72-c/graphduplex.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7400744648815485942</id><published>2008-04-17T08:19:00.008+01:00</published><updated>2008-05-07T15:26:07.506+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MIMESweeper'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security Policy'/><category scheme='http://www.blogger.com/atom/ns#' term='Email Filtering'/><title type='text'>Information Security - Email Management</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:85%;"&gt;I've just finished a fascinating tranche of work on mail management, in&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:85%;"&gt; my particular clients case, using MIMESweeper which works by a "stop" list, i.e. a list of banned words/phrases/regular expressions. First issue to understand was legal compliance, secondly, effective operational procedures leveraging the features of the tool. Below is a Freemind map of the overall process:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_G86K0wbY_rs/SAb8JZDxwxI/AAAAAAAAADk/BZT25JSiukk/s1600-h/MIMESweeperManagement.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_G86K0wbY_rs/SAb8JZDxwxI/AAAAAAAAADk/BZT25JSiukk/s400/MIMESweeperManagement.jpeg" alt="" id="BLOGGER_PHOTO_ID_5190112858866828050" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Language Coverage&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; We have a diverse workforce who speak many languages including: Hindi, Finnish, Russian, Bulgarian etc. Deciding which languages should cover was a simple conundrum to the in-house legal expert - we only need to cover the languages in which we conduct our business, (in the clients case) namely English, French, German and Japanese.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;The stock English dictionary supplied with MIMESweeper contained mainly anatomical parts and the usual canonical profanity. The strategy of this particular stop list seemed to be male, heterosexual, white, American and lower class. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I believe this is where the fecund British mind can add value: there are several online dictionaries are sources of expletives and profanity (e.g. &lt;a href="http://www.alternative-dictionaries.net/"&gt;The Alternative Dictionaries&lt;/a&gt;, Roger's Profanisaurus etc.) Other interesting sources are &lt;a href="http://www.netlingo.com/emailsh.cfm"&gt;SMS acryonyms&lt;/a&gt; which are increasingly being used by the younger generation. There are even &lt;a href="http://www.transl8it.com/cgi-win/index.pl"&gt;translation sites&lt;/a&gt; which can change English into "text speak". and several words used by the slightly more educated such as &lt;a href="http://dictionary.reference.com/search?db=dictionary&amp;amp;q=onanist"&gt;onanist&lt;/a&gt;. In the latter case, it would be hard to argue that any of these words, phrases and acronyms have any place in business communications. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;UK Legislative Changes&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The legislative environment in the area or employment law, company regulation, data protection and human rights has changed so radically of late that there is a significant gap between practitioner perception and legal reality. Therefore, it may be wise to address address this chasm in order to "provide a safe working environment" for staff. To that end, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I've tried to cover all bases here in a succinct yet comprehensive statement in &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;the Email and Instant messaging policy to reflect this intent:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul  style="font-style: italic;font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;the creation or distribution of any disruptive or offensive&lt;/span&gt;&lt;span style="font-size:85%;"&gt; m&lt;/span&gt;&lt;span style="font-size:85%;"&gt;essages, including offensive comments about race, statements about gender, hair colour, disabilities, age, religious beliefs and practise, political beliefs, national origin, sexual orientation, sexist remarks, sexual candour or voyeurism&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;Email Governance - Data Protection, Human Rights and RIPA&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Contrary to the widely held belief, employees do have rights under the Data Protection and Human Rights Acts in the UK. Therefore, an explicit governance framework must be in place to control access to email, user data and calendar information:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_G86K0wbY_rs/SAcZ95DxwyI/AAAAAAAAADs/5yZtzzMI9-k/s1600-h/EmailAccess.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_G86K0wbY_rs/SAcZ95DxwyI/AAAAAAAAADs/5yZtzzMI9-k/s400/EmailAccess.jpeg" alt="" id="BLOGGER_PHOTO_ID_5190145646647165730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Email Analysis Using MIMESweeper&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;And lastly, once we  have our email, we need to be able to analyse it in a way which does not necessarily mean we need to read the contents.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_G86K0wbY_rs/SAcbMpDxwzI/AAAAAAAAAD0/r1n4cTU6gd8/s1600-h/MIMESweeperMailAnalysis.jpeg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_G86K0wbY_rs/SAcbMpDxwzI/AAAAAAAAAD0/r1n4cTU6gd8/s400/MIMESweeperMailAnalysis.jpeg" alt="" id="BLOGGER_PHOTO_ID_5190146999561863986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;To be continued&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7400744648815485942?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7400744648815485942/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7400744648815485942' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7400744648815485942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7400744648815485942'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/04/email-management-ive-just-finished.html' title='Information Security - Email Management'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_G86K0wbY_rs/SAb8JZDxwxI/AAAAAAAAADk/BZT25JSiukk/s72-c/MIMESweeperManagement.jpeg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2892250544435987101</id><published>2008-04-10T09:27:00.005+01:00</published><updated>2008-05-07T15:27:16.208+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Security incident management'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security Policy'/><title type='text'>Security Incident Management - Event Notification</title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Deep in policy land of late, finishing off a &lt;a href="http://bitsinfo.org/"&gt;BITS&lt;/a&gt; compliant set of Infosec polices, I noticed a service which may prove useful in Information Security Incident management (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;or any other incident management scenario for that matter) &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;from Grasswhispers (&lt;a href="http://grasswhispers.co.uk/"&gt;http://grasswhispers.co.uk&lt;/a&gt;.)&lt;br /&gt;&lt;br /&gt;The user controlled web portal allows you to upload your staff mobile phone database then categorise them accordingly. When an incident occurs they will receive a pre-recorded message. Of considerable further use is the ability to record update messages on the move from a mobile phone. It's a slightly better alternative that SMS (see below.)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;In times of crisis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Only fly in the ointment is what happens if they switch the mobile phone networks off? This happened during 7/7 for whatever reason - presumably in an attempt to  block a control route to a yet unexploded devices. Perhaps this is something that needs to be taken into consideration in any emergency scenario? However, I'm surprised that so many organisations seem to devolve the responsibility for DR/BCP to the least able of the IT groups and usually to their least able members i.e. Infrastructure.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SMS comes with no quality of service guarantees - in fact it's store and forward at its worst. As an example, people frequently encounter difficulties with SMS traffic each New Year or in crowded venues. Occasionally, you'll get an SMS message that has been significantly delayed too.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div id="zemanta-pixie" style="margin: 5px 0pt; width: 100%;"&gt;&lt;a id="zemanta-pixie-a" href="http://www.zemanta.com/" title="Zemified by Zemanta"&gt;&lt;img id="zemanta-pixie-img" src="http://img.zemanta.com/pixie.png?x-id=57cd8cf5-68b7-485e-8e2e-ef89bbd7086b" style="border: medium none ; float: right;" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-2892250544435987101?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2892250544435987101/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2892250544435987101' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2892250544435987101'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2892250544435987101'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/04/security-incident-management-event.html' title='Security Incident Management - Event Notification'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1394018923317124563</id><published>2008-04-02T10:22:00.009+01:00</published><updated>2008-07-04T11:31:28.035+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ISO27001'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security Policy'/><category scheme='http://www.blogger.com/atom/ns#' term='Ethics'/><title type='text'>Policy.HR.Ethics</title><content type='html'>&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;Index  &lt;/span&gt;&lt;br /&gt;&lt;p  style="font-family:arial;"&gt;Overview&lt;br /&gt;Purpose&lt;br /&gt;Scope&lt;br /&gt;Policy&lt;br /&gt;Conflicts of interest&lt;br /&gt;Honest and ethical conduct&lt;br /&gt;Corporate opportunities&lt;br /&gt;Confidentiality&lt;br /&gt;Treating stakeholders fairly&lt;br /&gt;Employees&lt;br /&gt;Protection and proper use of assets&lt;br /&gt;Compliance with laws, rules and regulations&lt;br /&gt;Compliance with this code&lt;br /&gt;Interpretation of this code&lt;br /&gt;Policy class hierarchy&lt;br /&gt;Enforcement&lt;br /&gt;Ownership and maintenance&lt;br /&gt;Copyright&lt;br /&gt;&lt;/p&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;Document Status and Revision History&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;    New policy - written 2008&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;br /&gt;Overview&lt;/span&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;your&gt;"Your Company Name" is committed to conducting its business in accordance with the applicable laws, rules and regulations and with the highest standards of business ethics.&lt;/your&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All employed in the company must not only comply with the applicable laws, rules and regulations but should also promote honest and ethical conduct of the business. They must abide by the polices and procedures that govern the conduct of the company's business. Their responsibilities include helping to create and maintain a culture of high ethical standards and commitment to compliance, and to maintain a work environment that encourages stakeholders to raise concerns for the attention of management.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-purpose"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-weight: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Purpose"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Purpose&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;This code is indented to provide guidance and help in recognising and dealing with ethical issues, provide a mechanism to report unethical conduct and help foster a culture of honesty and accountability.&lt;/span&gt;&lt;/p&gt;&lt;h1  style="font-family:arial;"&gt;&lt;span style="font-size:130%;"&gt;Policy&lt;/span&gt;&lt;/h1&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-conflictsofinterest"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-ConflictsofInterest"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Conflicts of Interest&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;These can arise from:&lt;/span&gt;&lt;/p&gt; &lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;the receipt of improper personal benefits as a result of one's position in the company (including benefits for family members)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;an outside business activity that detracts from an individuals ability to devote appropriate time and attention to their responsibilities in the company.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;The receipt of non-nominal gifts or excessive entertainment from any person or company with which &lt;your&gt; has current or prospective business&lt;/your&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;any significant ownership interest in in a supplier, customer, development partner or competitor of the company.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;any consulting or employment relationship with any suppler, customers, development partner or competitor.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All employed by the company should be scrupulous in avoiding conflicts of interest. Where there is likely to be a conflict of interest, the person concerned should make full disclosure of all the facts and circumstances to the board of directors or the the committee or officer nominated for this purpose and prior written approval be obtained.&lt;/span&gt;&lt;/p&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;Honest and Ethical Conduct&lt;/span&gt;  &lt;p  style="font-family:arial;"&gt;The directors, officers and employees shall act in accordance with the highest standards of personal and professional integrity not only on the company's premises but also at company-sponsored business, social events and in their personal lives.&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;They shall be free from fraud and deception.&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;They shall always conform to the best standards of ethical conduct.&lt;/p&gt;&lt;h2  style="font-weight: bold;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Corporate Opportunities&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All have a duty to the company to advance its legitimate interests when the opportunity arises.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Directors, officers and employees are expressly prohibited from&lt;/span&gt;&lt;/p&gt; &lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;taking for themselves personally, opportunities that are discovered through the use of the company's property, information or position.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;competing directly with the current  business of the company or its likely future business.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;using company property, information or position for personal gain.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;   &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;If the company has made a final decision not to pursue an opportunity, an individual may follow it up only after disclosing the same to the board of directors or to the nominated committee or individual.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-confidentiality"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-weight: normal;font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Confidentiality"&gt;&lt;/a&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Confidentiality&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All shall respect confidential information on the company, any of its customers, suppliers or business associates. Disclosure of such information should only be made where authorised or required by law.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;The use of confidential information for personal gain is strictly forbidden.&lt;/span&gt;&lt;/p&gt;&lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Treating stakeholders fairly&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All &lt;your&gt; employees at all levels should deal fairly with those we do business with. No-one should take unfair advantage of anyone through manipulation, concealment, abuse of confidential information, misrepresentation of facts or any other unfair dealing practices.&lt;/your&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-employees"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Employees"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Employees&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;The company will not tolerate discrimination on any grounds whatsoever. All employees will be treated fairly and given the opportunity to grow and develop within the company. Promotion will be on merit. Bullying or harassment is regarded as a serious offence and will not be tolerated.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-properuse"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Protectionandproperuseofcompanyassets"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Protection and proper use of company assets&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Everyone has a duty to protect the company's assets and ensure their proper use. Theft, carelessness and waste of the company assets damage profitability. These assets should only be used for legitimate business purposes.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-compliancelaws"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Compliancewithlaws,rulesandregulations"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Compliance with laws, rules and regulations&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;All employed by the company shall comply with all relevant laws, rules and regulations. All employees at all levels are expected to know how these laws and rules apply to their area of decision-making. In the event of any uncertainty, the employee concerned should consult the company legal department before taking action.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-compliancecode"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Compliancewiththecode"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Compliance with the code&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;If any person suspects or knows of a violation of this code, they must immediately report the same to the board of directors or the designated committee or person. The company has a "whistle blowing policy" or to give its formal title, Public Interest Disclosure Policy that will protect their anonymity. Details of the policy are available on the intranet via the preceding link.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Violations of this code will result in disciplinary action and, in some cases, dismissal. Full details of the disciplinary procedures and the appeal processes are included on the intranet.&lt;/span&gt;&lt;/p&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-interpretation"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Interpretationofthiscode"&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;Interpretation of this code&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;  &lt;p  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;Interpretation of this code is reserved for the board. The board may appoint a designated committee or designated person to act on its behalf in interpreting and clarifying this code.&lt;/span&gt;&lt;/p&gt;  &lt;p face="arial"&gt;&lt;span style="font-size:100%;"&gt;Any employee found to have violated this policy may be subject to disciplinary action, up to and including termination of employment.&lt;/span&gt;&lt;/p&gt;  &lt;p style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-policyclasshierarchy"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-PolicyClassHierarchy"&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;Policy Class Hierarchy&lt;/span&gt;&lt;/span&gt;&lt;/h2&gt;   &lt;h3  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Class"&gt;&lt;/a&gt;Class&lt;/span&gt;&lt;/h3&gt;  &lt;p face="arial"&gt;&lt;span style="font-size:100%;"&gt;    Policy.HR.Ethics &lt;/span&gt;&lt;/p&gt;  &lt;h3  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Procedures"&gt;&lt;/a&gt;Procedures&lt;/span&gt;&lt;/h3&gt;  &lt;p face="arial"&gt;&lt;span style="font-size:100%;"&gt;    None&lt;/span&gt;&lt;/p&gt;  &lt;h3  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-Standards"&gt;&lt;/a&gt;Standards&lt;/span&gt;&lt;/h3&gt;  &lt;p face="arial"&gt;&lt;span style="font-size:100%;"&gt;    None&lt;/span&gt;&lt;/p&gt;  &lt;h3  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-SeeAlso "&gt;&lt;/a&gt;See Also &lt;/span&gt;&lt;/h3&gt;  &lt;p style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;    None &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-ownership"&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;  &lt;h2  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="Ethics-OwnershipandMaintenance "&gt;&lt;/a&gt;Ownership and Maintenance &lt;/span&gt;&lt;/h2&gt;  &lt;p style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;    This policy is owned by the Head of Information Security at &lt;your&gt; and is revised on an annual basis. &lt;/your&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1394018923317124563?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1394018923317124563/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1394018923317124563' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1394018923317124563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1394018923317124563'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/04/policy.html' title='Policy.HR.Ethics'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2917760317172230169</id><published>2008-03-25T21:04:00.007Z</published><updated>2008-05-07T15:28:34.553+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='S3'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='notarisation'/><category scheme='http://www.blogger.com/atom/ns#' term='ricardian contracts'/><title type='text'>Notelets</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I've been looking with interest at Amazon's Web Service stuff, particularly &lt;a href="http://www.amazon.com/gp/browse.html?node=16427261"&gt;S3&lt;/a&gt;, for several years though never really saw it as being a realistic part of the Investment Banking scene. However, I wonder if that's going to change with great deal of interest in SOA and now Web 2.0 from the marketeers which is feeding into IT strategy. Here's an idea I bandied around with Ian Grigg of &lt;a href="http://systemics.com/index.html"&gt;Systemics&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;, &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;a leading light in the financial cryptography community and author of the seminal paper &lt;a href="http://iang.org/papers/fc7.html"&gt;Financial Cryptography in 7 Layers&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Seems to me that the ideas and the technology have been around for a while - it's the time it takes to change the strategy juggernaut that's the issue...&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;A conversation with Ian Grigg of Systemics from 27th November 2003&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I have an idea called Notelets - an arbitrary lightweight data storage mechanism with good&lt;br /&gt;security and highly redundant. Access is via key or x509 cert. Notelets can be "chained" - linked together and "nested" - heirarchical, distributed - stored on at least n nodes (where n &gt; 1.)&lt;br /&gt;&lt;br /&gt;This is a bit like freenet project (freenet.sourceforge.net - forget the "freedom" rhetoric - this is the incentive mechanism) - a cryptographic file storage system which is highly redundant and highly distributed. However, there's no element of revenue in the model - and therefore no incentive to run a freenet node. Notelets is different in that the revenue model is a key part system - allowing those who host the service to earn a revenue and build a reputation.&lt;br /&gt;&lt;br /&gt;The idea is to "give away" the software to whoever would host data storage - instant and pervasive infrastructure. One of the principal usages would be that of a semaphore between one-to-one or one-to-many parties.&lt;br /&gt;&lt;br /&gt;The service could facilitate high levels of security (I won't bore you with the details - but a good analogy is the "tradecraft" symbols used to coordinate drop points as detailed in the Mitrokhin Archive)&lt;br /&gt;&lt;br /&gt;A p2p management layer would handle server reputation, notelet distribution and would be geolegislatively sensitive.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; Here's an idea. What about a "notes" service (a la post it notes.)&lt;br /&gt;&lt;br /&gt;- user/application issues request for access&lt;br /&gt;- cert issued via email/soap call&lt;br /&gt;- cert presented when service accessed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Hmmm.... OK.  We are talking website - browser access with client cert here, right?  That infrastructure exists which is a big plus.  It has had mixed reports, which is a minus.  I suppose we'd have to test it to see if the promise is kept.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; - User can create up to 20 blobs of info/text/binary -   up to 20KB each - blobs can be linked together - chained, deleted, modified,   searched etc&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; OK, so this is a sort of user management desktop thing.  As close as possible to one's personal PC capabilities, but over the web, right?  An all-powerful web services thingie.&lt;br /&gt;&lt;br /&gt;This would be sort of like PeopleSoft I imagine, not that I have the faintest clue what PeopleSoft do.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; - blobs persist for 7 days then recycled. These blobs are free - alternatively, blobs cost 2cents per 20K (based on a   dollar a gig at present - this will drop though.) One time fee - for five years (based on MTBF of disk) - Plus running costs of say 5.47 dollars a day for a 120GB mirrored server (5 years @ 2000 bucks for rent and power and bandwidth - based on uk prices)&lt;br /&gt;works out at (120 * 1024 * 1024) / 20 * 1024 = 6144 "notes" per day is 5.47/6144 = .9 millicents per note per day - Then add our profit margin - 100%?- you get 4cents setup - 1.8 millicents per day.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Ok, so someone comes up with a pricing model and revenue and all that.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; So who would use it? Well - you ever tried to build an application in a bank? ha ha - nightmare - power and control are exerted by restricting access to machines and storage.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Hmm, ok.  But - to cast my devil's advocate spears at the idea - anyone who is working in a financial institution like that will not want to pay for the access to a "great tool."  They would only use it if it was free to them, which means either there is some con going on and the bank pays for it without knowing, or, the bank is paying for it up front, and it is therefore part of the application.&lt;br /&gt;&lt;br /&gt;Are you saying the latter, as that's ok, because the bank itself wants it anyway?&lt;br /&gt;&lt;br /&gt;Where I would go a little weak at the knees is that most places I have been get all fuzzy and crazy when they hear that substantial amounts of information are off-site, out of their circle of "physical control."&lt;br /&gt;&lt;br /&gt;But let's keep going   I'm the plant, recall, I criticise and others grumble and groan until they figure out how to slip one past...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; Second users would be lightweight coordination services -  inter organisation - like as suggested in &lt;a href="http://www.enhyper.com/lib/Software_Engineering/Web_Services/THP/"&gt;The Tentative Hold Protocol.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Nice idea I think matey&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; That's heading in an important direction.  Whoever cracks the way to automate the pre-contract parts of the deal process is going to be big.&lt;br /&gt;&lt;br /&gt;Personally, my current view is think of it this way:&lt;br /&gt;&lt;br /&gt;1.  build the payment&lt;br /&gt;2.  add the bits that make people use the payment...&lt;br /&gt;2. a  hence the IM addition to WebFunds which is "nearly there (tm)".&lt;br /&gt;&lt;br /&gt;I.e., build one tool, and then build out from there.&lt;br /&gt;&lt;br /&gt;One thing I'm very leary of is people who say that they've worked out a way to automate purchasing and contracting.  They never have clue.  But, this loose/tentative approach might be such that someone has realised how hard this is...&lt;br /&gt;&lt;br /&gt;(Haven't time to read it.  Oops, it was by Intel&lt;br /&gt;&lt;br /&gt;But I agree, a nice idea.  I doubt that we would be able to "build a protocol" ....  It's a big job.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; What is it that the large institutions want?  In my experience, they want something sold to them by the big 5 (IBM, SUN, Microsoft, HP etc.)   Of course, selling to them is next to impossible.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; They want to minimise risk and cost and maximise profit (for them) of course&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Yeah I heard that too   If I knew how to do that, I'd be tempted to keep it to myself though&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; Sure - that's the crux - they want to buy from the big 5 so they can sue them if anything goes wrong. But the big five need to take advantage of the bazaar effect - millions of programmers rather than just a couple of thousand.&lt;br /&gt;&lt;br /&gt;[IG] Well, if that's what you want, then do this:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iang.org/papers/task_market.html"&gt;http://www.iang.org/papers/task_market.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;That we can do.  I have the tech, and the knowledge. There is a fair bit of programming to be done, but, I know the traps.  Several companies have tried, and have all failed as far as I know.  There is one company doing it currently, something with "brain" in the title.&lt;br /&gt;&lt;br /&gt;Mind you it is a fair way from J&amp;amp;S.  However, maybe it can be turned to legal work.  "Project to research a brief on effects of digsig law on payment systems. Must include cases, cite precedences.  Supports case to defend Twinkies Tokens v. Crown."&lt;br /&gt;&lt;br /&gt;Now, confidentiality of the attack before the judge is an issue in litigation, so it might not be so obvious that we could use open research projects. But, it can be used for deception as well.  And,&lt;br /&gt;many projects would be obvious.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; They need to consume services which are reliable and secure - and they will pay the price. The Big 5 need to peer content/services so they can have a comprehensive offering.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Um.  OK.  So, a characteristic is reliability.  And, security.  But, that's all something that we can consider when we've figured out the service.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; This is the point of a directory approach - reputation is key to the success of a service - fast, reliable and cheap - that happy medium. Doesn't stop you downgrading when a service fails - and this gives you realtime failover which is kinda cute.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; Right.  But, you cannot have reputation unless you have success.  First, you have to succeed, then you can create the brand to protect that success.  It is improbable to create a reputation without first having a presence, which means a service or product that has already made it.&lt;br /&gt;&lt;br /&gt;Catch 22, of course, which is why the big 5 like buying from big companies and paying the price&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; OK.  If they are into the legal field... one thing that did arise in my thoughts was a thought that discovery could become a web service.&lt;br /&gt;&lt;br /&gt;Here's how it works - in a case there are hundreds of documents flying back and forth.  Discovery is the first phase, then there is an intermediate phase where documents are listed in preparation for hearings.  Finally, there is the "lifting into evidence" phase, where certain of the previous set are presented.&lt;br /&gt;&lt;br /&gt;Now.  All the documents have to be fairly available. But, both sides have an incentive to futz with their responsibilities. So, the whole thing is ripe for intermediation.  If, in the preliminary proceedings, someone suggests that "we go with S&amp;amp;J Discovery", then all documents/transactions would go to these guys instead. And, S&amp;amp;JD would mount a website, and a huge data repository, such that as documents come in, they are webbed.  Each side gets their account, and their password.  Access is private, so each side can't see what the other is doing.&lt;br /&gt;&lt;br /&gt;In the hearings, S&amp;amp;JD deliver the sets, so the docs are standardised.  Both sides get the same quality, so there are fewer arguments.&lt;br /&gt;&lt;br /&gt;Hmm, having written the above, I see that it has nothing to do with FC   Oh well, maybe S&amp;amp;J can make something of it.  Ideas are cheap.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; It dovetails nicely with my idea for a notes services - serendipity. And mine is very much about FC - because we're dealing at the engine level - not the car - the ladiemight make a truck out of it for the legal profession - and on the back of it we make an infra biz...&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; It does.  Yes.  What suprised me was that the legal services world is very very bad at technical stuff. They are very vulnerable to a service bureau taking over large parts of their enteprise.&lt;br /&gt;&lt;br /&gt;So, it doesn't have to be the above idea.  It could be any hook really, but, once you can get into the legal services field with a net based support service, that combines multiple firms, you can then expand out, using either your post-it notes idea, or the above discovery notion.&lt;br /&gt;&lt;br /&gt;That is, eventually, you become the para-legals department.  In a sense.  You do everything for the lawyers, bar making the coffee.&lt;br /&gt;&lt;br /&gt;Have you seen the movie "Minority Report"?  Imagine the setup they had, and compare that to a law library.&lt;br /&gt;&lt;br /&gt;Big barrier is the law library - it has to be purchased by a new attorney trying to set up practice.  I asked my guy - a real good guy - what the good book to get for contracts was, so I could understand how to do Ricardian contracts properly.  He said the reference is "Chitty on Contracts."&lt;br /&gt;&lt;br /&gt;So I checked, and it is $500 at amazon :-/&lt;br /&gt;&lt;br /&gt;Now, imagine S&amp;amp;J Legal Services, puts a big screen into the spare room that is now called the law library, but with no books...  Lawyers drive the tech, rent if for $X per month, and scan and search and ...&lt;br /&gt;&lt;br /&gt;But, the point is, it doesn't matter what the bait is, in principle, lawyers are vulnerable to this service dependency, I postulate.  So the task is to find the best cheap easy bait, and the best set of hooks 1 thru N and roll them out.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; I'll think of something more FC.  Perhaps a legal settlement currency, where cases are settled and escrowed in advance, and held in a sort of funny money, in Ricardo of course, and thus less money changes hands?&lt;br /&gt;&lt;br /&gt;Comments?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; Sounds like a great idea. We've been dealing with some legal stuff recently - and one of the things people have been asking for is for us to deposit 30K with a solicitor - it would be better to indicate intent by depositing a virutal currency - which would indicate intent and effect contractual obligation?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; There is certainly a market for independant escrow services.  Placing it in a currency would be one way.  It might be easier to find someone already doing it, and sell them an FC system.&lt;br /&gt;&lt;br /&gt;Now that I think about it, if you ask the solicitor this, he'll probably say, "yes, this is what you do.&lt;br /&gt;You go to J&amp;amp;S Escrow Partners in London, place the money with them, and they give you a piece of paper,  which you then hand to the solicitor.   They are the firm that everyone uses.  But your solicitor won't ever tell you about them because he needs your funds in his account because he uses the float to cover his loan to the book seller......."&lt;br /&gt;&lt;br /&gt;Now, the thing is to find that firm and sell them on the benefits of going digital.  If they were to issue units in Ricardian, instead of paper, they could save some small amount on costs.  But, the real future is that once they have got all the lawyers using their Ricardian escrow paper, they can launch a legal currency for other purposes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[GB]&lt;/span&gt; Also it could be used as a proof service so that you could ask whether counterparty has deposited or performed some action?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;[IG]&lt;/span&gt; yep!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-2917760317172230169?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2917760317172230169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2917760317172230169' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2917760317172230169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2917760317172230169'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/03/notelets-ive-been-looking-with-interest.html' title='Notelets'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6610817842193281280</id><published>2008-03-18T08:49:00.003Z</published><updated>2008-05-07T15:29:25.602+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='subprime'/><title type='text'>Subprime Explained</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;A learned colleague sent me a presentation called &lt;a href="http://enhyper.com/content/subprimeprimer.pps"&gt;The Subprime Primer&lt;/a&gt; which cynically explains the fine mess that the finance sector are in and how the RSG's bosses are all to blame - mild profanity - you have been warned...&lt;br /&gt;&lt;/span&gt;&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/3778948-6610817842193281280?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6610817842193281280/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6610817842193281280' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6610817842193281280'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6610817842193281280'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/03/subprime-explained-learned-colleague.html' title='Subprime Explained'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6631377645151385529</id><published>2008-03-14T15:49:00.004Z</published><updated>2008-05-07T15:29:03.710+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='text mining'/><category scheme='http://www.blogger.com/atom/ns#' term='risk analytics'/><title type='text'>MUSING Workshop - Turning Data Into Risk Knowledge - 21st May 2008</title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Of note is the MUSING Executive Workshop "Turning data into risk knowledge: Implementation of semantic-based risk management processes in the financial services industry". I've signed up as the agenda looks good. Lots of academics - in particular a guy from Sheffield who is working for &lt;a href="http://gate.ac.uk/"&gt;GATE&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;"&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:arial;"&gt;MUSING is an Integrated Project co-financed by the 6th Framework Programme of the European Union. Its mission is to shape next generation (Basel II &amp;amp; beyond) semantic-based Business Intelligence, bringing benefits particularly for the financial sector and SMEs by ensuring they have more effective access to credit. MUSING will impact positively on the processes of internationalisation, and empower companies to manage their operational risks more effectively" - they're running the above event details of which you can find &lt;a href="http://www.musing.eu/londonevent"&gt;here.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;I'm interested that a bunch of text miners are focusing on BASEL II compliance and lauding XBRL which seems to be much in the news this week. I read an article in &lt;a href="http://www.acm.org/publications/cacm/"&gt;CACM&lt;/a&gt; entitled &lt;a href="http://mags.acm.org/communications/200803/?pg=50&amp;amp;u1=texterity&amp;amp;cookies=1"&gt;Costs and Benefits of XBRL Adoption: Early Evidence&lt;/a&gt; which had good empirical evidence, quoting reporting speed ups of 4x.&lt;br /&gt;&lt;br /&gt;If you're interested in this area, there's a good read called &lt;a href="http://books.google.com/books?id=M9FfiPah3L0C&amp;amp;printsec=frontcover&amp;amp;dq=Intelligence+and+Security+Informatics+for+International+Security&amp;amp;ei=UaTaR_6dJ4vUsgPXhKH0AQ&amp;amp;sig=4uRgtpOU7hD14gPj75C2xTFVUaA"&gt;Intelligence and Security Informatics for International Security&lt;/a&gt; which is now a Google book. My take on the book was that it showed just how ineffective semantic analysis was (70% success rate). I infer that summarisation would fare no better but what do I know.&lt;br /&gt;&lt;br /&gt;Sign up - come along - should be a hoot.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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/3778948-6631377645151385529?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6631377645151385529/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6631377645151385529' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6631377645151385529'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6631377645151385529'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/03/musing-workshop-turning-data-into-risk.html' title='MUSING Workshop - Turning Data Into Risk Knowledge - 21st May 2008'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1326764115369269870</id><published>2008-03-12T10:54:00.003Z</published><updated>2008-05-07T15:29:51.174+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='depth markets'/><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><title type='text'>Enterprise Computing Strategies Summit</title><content type='html'>&lt;span class="065542209-12032008"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;a href="http://www.the451group.com/"&gt;The 451 Group&lt;/a&gt; have kindly invited me to speak at the above &lt;a href="http://ecssummit.com/eu/2008/"&gt;event&lt;/a&gt; on low latency and security. This will give me the opportunity to summarise the High Performance Computing journey that started in 2005 and put in perspective what has evolved over the last three years as we move towards increasingly automated electronic trading. &lt;/span&gt;&lt;/span&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;My approach will be to start with message orientated architectures and argue that they're superior  to event driven when it comes to high volumes. Electronic trading mandates the move from end-of-day to real-time risk calculation and analysis - no mean feat. This led my forays into FPGA based Monte Carlo and the whole accelerated simulation idea being followed by various Investment Banks.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Depth Aggregator Market&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Of real interest is pricing which used to be done the mid-market average and was becoming market-depth aware about 4-5 years ago. With internalisation and MiFID, we now, in theory, have multiple "exchanges" which we need to consult to ensure we are offering best price. This means depth from each exchange needs to be aggregated as point-to-point won't scale. This could be achieved by depth aggregation services - a nice little business opportunity for someone out there. Perhaps we'll see this sort of service being offered by a smart hosting provider?&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Topic-based Multicast Architectures&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Specific techniques to calculate in real time could be facilitated by topic based, multi-cast  architectures with n of m threshold schemes ensuring data  quality.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Visualisation, Social Networking, Idea Networks&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then perhaps looking at the part humans play in this (from trader to  trading "intelligence" analyst who builds her idea based social networks) and  what visualisation is needed.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;Accelerated Hardware Market&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I'm then going to  summarise the whole accelerated hardware scene, looking at why it's not  really going anywhere (apathy, lack of easy integration, no standards, esoteric  languages etc) then show the true path (IMHO) - ie monadic languages that are  highly parallelisable.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;/span&gt; &lt;/div&gt; &lt;div style="color: rgb(0, 0, 0);"&gt;&lt;span class="065542209-12032008"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;That  should be a hoot and quite  unique...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-family:arial;"&gt;&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/3778948-1326764115369269870?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1326764115369269870/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1326764115369269870' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1326764115369269870'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1326764115369269870'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/03/enterprise-computing-strategies-summit.html' title='Enterprise Computing Strategies Summit'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6915759764798008253</id><published>2008-02-29T19:49:00.003Z</published><updated>2008-02-29T20:03:30.736Z</updated><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;Has Cringely been drinking the Kool-aid?&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;As with many of his articles &lt;a href="http://www.pbs.org/cringely/pulpit/2008/pulpit_20080229_004404.html"&gt;Robert X Cringely&lt;/a&gt; started off with the breathless tones that got me thinking, "how could I have missed this?", but his post goes on for too long with too many unsubstantiated claims to maintain that emotion. As I've maintained over many pints, this is a fascinating time to be in IT. All we need is funding to check these claims, because nothing rankles like unsubstantiated claims.&lt;br /&gt;&lt;br /&gt;For example, NPTL sounds really cool. Graeme may have some insights, but this statement seems like fuzzy thinking to me:&lt;br /&gt;&lt;blockquote&gt;"My e-mail application runs on a four-core Opteron server," says a techie friend of mine, "but I've seen it have over 4,000 simultaneous connections - 4,000 separate threads (where I'm using "thread" to describe a lightweight process) competing for those four CPU's. And looking at the stats, my CPUs are running under five percent almost all the time. This stuff really has come a long way."&lt;br /&gt;&lt;/blockquote&gt;Is that good? Why do we need 4,000 threads if they aren't actually keeping the CPUs busy? I get the impression that most of these "lightweight processes" are waiting for something. NTPL may be a good thing, but I don't understand how this illustrates the benefits.&lt;br /&gt;&lt;br /&gt;In his conclusion he says "If an Azul box were installed on that network, my little app would instantly and mysteriously run up to 50 times faster." Really? I can't follow his argument here at all.&lt;br /&gt;&lt;br /&gt;I must have missed the point of his article. If anyone can clarify I'd love to find out more.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6915759764798008253?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6915759764798008253/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6915759764798008253' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6915759764798008253'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6915759764798008253'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/02/has-cringely-been-drinking-kool-aid-as.html' title=''/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2383241267406468834</id><published>2008-02-15T15:29:00.005Z</published><updated>2008-05-15T15:40:09.737+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Information Security'/><title type='text'>Hail the New Information Security World</title><content type='html'>&lt;span style="font-family:arial;"&gt;As it happens I'm deep in Information Security management at the moment which is an interesting diversion from HPC. A young turk is trying to set up an Information Security practise at the firm of some chums and has been asking my advice on where Information Security is at and where it's heading. His hypothesis was to structure it along three lines: architecture (application and networks), implementation and compliance.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;This, I feel, reflects the information security world of the past -  blighted with too many people who write abstruse policies which no one reads and are heard to continually say "no you can't do that".&lt;br /&gt;&lt;br /&gt;I feel it's time for a change so I proposed the following thre&lt;/span&gt;&lt;span style="font-family:arial;"&gt;e areas:&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li style="font-weight: bold;"&gt;&lt;span style="font-family:arial;"&gt;Security Architecture&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Strategy&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Governance&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Policy framework, policy and process design&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Security architecture: security architecture patterns&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Security API design and analysis&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Operational infrastructure design and implementation&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Product selection procurement&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Process design&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="font-weight: bold;"&gt;&lt;span style="font-family:arial;"&gt;Information Security Operations&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Process implementation and operation&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;SLA, compliance monitoring and reporting&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;li style="font-weight: bold;"&gt;&lt;span style="font-family:arial;"&gt;Information Security Analytics&lt;/span&gt;&lt;/li&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;KRI production, trends, outlier analysis, event correlation, ad hoc reports, event visualisation&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Forensic evidence capture, expert witness&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Risk Assessment&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt; But there's still something missing - the process of cumulative risk management. Click the image to expand:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_G86K0wbY_rs/R7W7KFo4FOI/AAAAAAAAAC8/UlF529bqb7o/s1600-h/RiskMgmt.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 275px; height: 173px;" src="http://4.bp.blogspot.com/_G86K0wbY_rs/R7W7KFo4FOI/AAAAAAAAAC8/UlF529bqb7o/s320/RiskMgmt.jpg" alt="" id="BLOGGER_PHOTO_ID_5167241929464222946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&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/3778948-2383241267406468834?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2383241267406468834/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2383241267406468834' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2383241267406468834'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2383241267406468834'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/02/hail-new-information-security-world-as.html' title='Hail the New Information Security World'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_G86K0wbY_rs/R7W7KFo4FOI/AAAAAAAAAC8/UlF529bqb7o/s72-c/RiskMgmt.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-8935180316808021999</id><published>2008-02-15T11:00:00.004Z</published><updated>2008-05-07T15:30:26.077+01:00</updated><title type='text'>General-purpose parallelism</title><content type='html'>Via &lt;a href="http://www.bluebytesoftware.com/blog/Default.aspx"&gt;Joe Duffy's weblog&lt;/a&gt; I just watched an interesting &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=382937"&gt;interview with Burton Smith&lt;/a&gt;, which is definitely worth sharing. It's about an hour long but here are some key points (many of which we have discussed here in the past):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;He discusses the "Von Neumann mistake" which has led to problems with scheduling due to shared state in computer programs, and ways to solve these problems&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Software transactional memory is a potential solution but currently has issues with scalability&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;He is most enthusiastic about functional programming languages. Interestingly he points out that the most commonly used functional languages are Excel and SQL.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Existing programming languages cannot be "tweaked" - an entirely new way of writing programs is needed to obtain the necessary levels of productivity&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;He also says that if Microsoft doesn't solve this problem, nobody will. Maybe he's paid to say that, but they are doing some interesting things with .NET, in particular Smith notes that &lt;a href="http://research.microsoft.com/fsharp/fsharp.aspx"&gt;F#&lt;/a&gt; is being "productized" and they are working on &lt;a href="http://msdn.microsoft.com/msdnmag/issues/07/10/PLINQ/default.aspx"&gt;parallel LINQ&lt;/a&gt;&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/3778948-8935180316808021999?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/8935180316808021999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=8935180316808021999' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8935180316808021999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8935180316808021999'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/02/general-purpose-parallelism-via-joe.html' title='General-purpose parallelism'/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1044538727902461451</id><published>2008-02-09T17:50:00.000Z</published><updated>2008-02-10T15:46:52.351Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='TSE'/><category scheme='http://www.blogger.com/atom/ns#' term='dot net'/><category scheme='http://www.blogger.com/atom/ns#' term='crashes'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;Tokyo Exchange goes Boom! Is there a link to the LSE? Could be...&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;This article caught my eye when Google Readering yesterday.&lt;br /&gt;&lt;/span&gt;&lt;a href="http://www.finextra.com/fullstory.asp?id=18058"&gt;&lt;br /&gt;http://www.finextra.com/fullstory.asp?id=18058&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Back in November,I noted that the &lt;a href="http://enhyper.blogspot.com/2007_11_04_archive.html"&gt;LSE went Boom!&lt;/a&gt; and that this won't be the last time it falls over. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;It seems a coincidence that the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Tokyo_Stock_Exchange"&gt;Tokyo Stock Exchange&lt;/a&gt;&lt;span style="font-family:arial;"&gt; is suffering performance problems and system crashes like it's technology partner the LSE. The pair "are developing jointly traded products and share technology" - oh really? that's a good idea? Same security vulnerabilities, same performance problems, same mysterious crashes then...&lt;br /&gt;&lt;br /&gt;Word on the street also about other products based on dot net having serious, unsolvable bugs: mysterious freezes, runaway memory growth, threading issues and performance headaches, just like I experienced when building my last algo trading platform.&lt;br /&gt;&lt;br /&gt;Mind you, this is nothing specific against dot net. I remember when I first worked in the city in 1996 doing C++ and using Roguewave libraries - what a disaster that was. Well I did promise to tell you about the eek bug back in the &lt;a href="http://enhyper.blogspot.com/2007/12/haskell-next-mainstream-programming.html"&gt;Haskell post&lt;/a&gt; so here goes: I was at my first investment bank - sigh - the good old days. One of the developers had a bug that he couldn't solve after a week - we tried everything - every debugger known - they all pointed to threading problems in the Roguewave libraries but the manufacturer was responding slowly. One day, the programmer put the string "eeek" as a printf debug. Miraculously, the bug disappeared. We tested other strings - non worked - only the eeek string did the trick.&lt;br /&gt;&lt;br /&gt;That hardened my heart against third party libraries developed by private companies - when the bugs hit - you often have nowhere to turn. My guess is there's an eeek bug or two in the dot net stuff. If it were open source, perhaps there would be a hope of fixing it...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&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/3778948-1044538727902461451?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1044538727902461451/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1044538727902461451' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1044538727902461451'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1044538727902461451'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/02/tokyo-exchange-goes-boom-is-a-link-to.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4525315458017627522</id><published>2008-01-30T16:53:00.000Z</published><updated>2008-01-30T17:03:40.538Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='low-latency messaging'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0); font-family: arial;"&gt;zeroMQ - Fastest Messaging Ever&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Interesting offering from  &lt;a href="http://www.zeroMQ.org"&gt;zeroMQ&lt;/a&gt; who seem to be pals with Intel. I've checked out the code briefly and am surprised by the use of dynamic memory allocation at such a low level of granularity. I usually allocate a large lump and rely on  paging to weed out the empty pages. Anyway, from the very brief look I've had, it's written in C++ and has AQMP compatibility and for some reason I get a whiff of Erlang. More analysis coming soon.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0); font-family: arial;"&gt;&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/3778948-4525315458017627522?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4525315458017627522/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4525315458017627522' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4525315458017627522'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4525315458017627522'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/01/zeromq-fastest-messaging-ever.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-673770180311700078</id><published>2008-01-29T11:14:00.000Z</published><updated>2008-01-30T16:51:06.936Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='fx trading'/><category scheme='http://www.blogger.com/atom/ns#' term='low latency'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;What do you mean by end-to-end latency?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Steve just sent this through:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a style="font-family: arial;" href="https://editorialexpress.com/cgi-bin/conference/download.cgi?db_name=sce2007&amp;amp;paper_id=72"&gt;Order execution dynamics in a global FX market&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 153, 153);font-family:arial;font-size:100%;"  &gt;"Very nice overview. This is key: "&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-family:Verdana;font-size:100%;"  &gt;&lt;span style="line-height: 125%;"&gt;First, you need to understand what  you mean by end-to-end latency (it will be different for different types of  organization)&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 153, 153);font-family:arial;" &gt;&lt;span style="color: rgb(102, 102, 102);font-size:100%;" &gt;".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One of the key metrics for FX turns out to be time  to cancel a trade - on EBS over 70% of $1M trades are cancelled. Nobody wants to  talk about the games they are playing so it's a bit tricky to know what someone  means when they say they want sub-millisecond execution." &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;An intuitive paper detailing the clustering, spread and timings of limit orders on EBS. It's argued that impatient traders can drop below current price for faster execution. Sitting above the price takes longer as one would imagine. There's also a correlation with order size, showing smaller volumes trade quicker.  Volumes are based on 2006 data and are not particularly high.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;What's missing though is the underlying need for fast price and market data. The logical implication is reduction in latency - and therefore the necessity for physical proximity. Perhaps it's time to replicate &lt;/span&gt;&lt;a style="font-family: arial;" href="https://www.linx.net/"&gt;LINX&lt;/a&gt;&lt;span style="font-family: arial;"&gt; idea for high performance trading applications?&lt;/span&gt;&lt;br /&gt;&lt;a href="https://editorialexpress.com/cgi-bin/conference/download.cgi?db_name=sce2007&amp;amp;paper_id=72"&gt;&lt;br /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style=""&gt;&lt;span class="a"&gt;&lt;br /&gt;&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/3778948-673770180311700078?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/673770180311700078/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=673770180311700078' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/673770180311700078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/673770180311700078'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/01/what-do-you-mean-by-end-to-end-latency.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-8853940717474783417</id><published>2008-01-17T07:58:00.000Z</published><updated>2008-01-17T15:03:17.318Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='security policy'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security'/><category scheme='http://www.blogger.com/atom/ns#' term='OO'/><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;font-size:130%;"  &gt;Object Orientated Security Policy&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I gave a talk this week on Object Orientated Security Architecture to a Infosec management audience outside of the normal financial sectors that I work. Hopefully it was well received and made some sense. You can download the original presentation &lt;a href="http://enhyper.com/content/OOSec.ppt"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Current State&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul face="arial"&gt;&lt;li&gt;Invisible policy framework &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Loose collection of abstract policies  &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Rarely if ever read, understood or referred to &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Complex &amp;amp; technical v. functional &amp;amp; clear &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;No business rules (BPML) &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Monolithic &amp;amp; centralised v. global and federated  &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Uncertain legal status &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Audit/accountancy driven v. business focused &lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.06%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Control rather than functionality&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="font-family:arial;"&gt;New Ideas&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;p:colorscheme colors="#FFFFFF,#000000,#3783FF,#FAA100,#969696,#FFFFFF,#007E35,#000000"&gt;&lt;/p:colorscheme&gt;&lt;/span&gt;&lt;div shape="_x0000_s1026"&gt;  &lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Tahoma;font-size:100%;"  &gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Tahoma;font-size:100%;"  &gt;Inheritance applied to Security Policy &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;General and abstract to specific and detailed  &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Data, event and process centred  &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt; &lt;/span&gt;Detailed and technical to minimal and clear &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=""&gt; &lt;/span&gt;Navigable framework &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;Process catalogue &lt;/span&gt;  &lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="position: absolute; left: -1.47%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;human readable (ie not just by policy wonks) &lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="position: absolute; left: -1.47%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;machine executable&lt;/span&gt; &lt;/span&gt;    &lt;/li&gt;&lt;/ul&gt;&lt;/div&gt; &lt;p:colorscheme colors="#FFFFFF,#000000,#3783FF,#FAA100,#969696,#FFFFFF,#007E35,#000000"&gt;  &lt;/p:colorscheme&gt;&lt;div shape="_x0000_s1026" class="O"&gt;  &lt;div style=""&gt;&lt;span style=";font-family:Tahoma;font-size:67;"  &gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;&lt;span style=""&gt; &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Components&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;span style="font-size:12;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul style="font-family: arial;"&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style="font-family:arial;"&gt;Visual Policy framework – (BITS SIG++)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;Hierarchal process catalogue (BITS AUP++) &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:67;"&gt;&lt;span style="position: absolute; left: -1.08%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;Security Architecture Capture &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;subset of BITS SIG &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;concentrates on data flows  &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;asset, data, risk classes &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;&lt;span style=""&gt;&lt;/span&gt;business value and application complexity &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:12;"&gt;operational impact analysis&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Compliance&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;p:colorscheme colors="#FFFFFF,#000000,#3783FF,#FAA100,#969696,#FFFFFF,#007E35,#000000"&gt;  &lt;/p:colorscheme&gt;&lt;div shape="_x0000_s1026"&gt;  &lt;div class="O" style=""&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;    Standardised Information Gathering (SIG)&lt;/span&gt;&lt;span style=";font-family:Tahoma;font-size:67;"  &gt;&lt;span style="position: absolute; left: -8.56%;"&gt; -        &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;        -        ISO27002:2005, COBIT, PCI-DSS 1.1 &lt;/span&gt;&lt;/div&gt;    &lt;div class="O" style=""&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;    Agreed Upon Procedures (AUP)        &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;  &lt;div class="O1" style=""&gt;&lt;span style=";font-family:Tahoma;font-size:67;"  &gt;&lt;span style="position: absolute; left: -8.56%;"&gt;•&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;&lt;span style=""&gt;         -        &lt;/span&gt;GLB, HIPPA, COSO, SysTrust, SOX &lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style=""&gt;&lt;span style=";font-family:&amp;quot;;font-size:12;"  &gt; &lt;/span&gt;&lt;/div&gt;  &lt;div class="O" style=""&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:Tahoma;font-size:12;"  &gt;    Employment Law &lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;    &lt;/div&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/3778948-8853940717474783417?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/8853940717474783417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=8853940717474783417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8853940717474783417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8853940717474783417'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/01/object-orientated-security-policy-i.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1017477263111487330</id><published>2008-01-13T21:02:00.000Z</published><updated>2008-01-17T15:00:40.820Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;Haskell Cryptographic Library - New Release&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;Having had quite a few contributions lately, I've released a new version of the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://hackage.haskell.org/cgi-bin/hackage-scripts/package/Crypto-4.1.0"&gt;Haskell Cryptographic Library&lt;/a&gt;&lt;span style="font-family: arial;"&gt;. It now contains an implementation of &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Tiny_Encryption_Algorithm"&gt;TEA&lt;/a&gt;&lt;span style="font-family: arial;"&gt; and &lt;/span&gt;&lt;a style="font-family: arial;" href="http://en.wikipedia.org/wiki/Bubblebabble"&gt;BubbleBabble&lt;/a&gt;&lt;span style="font-family: arial;"&gt;.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1017477263111487330?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1017477263111487330/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1017477263111487330' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1017477263111487330'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1017477263111487330'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/01/having-had-quite-few-contributions.html' title=''/><author><name>cinimod</name><uri>http://www.blogger.com/profile/07302956852946739194</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7617624828153925970</id><published>2008-01-02T16:14:00.001Z</published><updated>2008-05-15T15:38:21.149+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdf5'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><title type='text'>Erlang for Five Nines Talk</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;Erlang for Five Nines Talk&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;I attended the above &lt;a href="http://enhyper.blogspot.com/2007/12/talk-erlang-for-five-nines-by-francesco.html"&gt;talk&lt;/a&gt; given at Skillsmatter.com on the 13th December. There were 37 attendees, two of which were women (women in technology take note.) I'm afraid I was virtually the only suit in the room apart from Francesco (the speaker) so I stuck out like the proverbial sore thumb.&lt;br /&gt;&lt;br /&gt;It was a good talk, well received and well presented. Not particulary technical, so I'm afraid I may have asked too many questions, but I couldn't let the opportunity to get a real understanding of practical Erlang slip by. I was particularly interesting in support for multicast but as no one else had heard of it I kept quiet.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Shared Memory Support&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;One area I was particulary interested in was &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;no shared memory support - all comms has to go through a tcp/ip software stack apparently.&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt; I can  understand the aesthetic reasons behind this but the implications for high performance messaging are significant: from one Erlang process to another on a remote machine there's an extra two stacks to cross. It would be interesting to compare with the high performance messaging providers.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Real-world Erlang - Yaws Performance&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;br /&gt;One rather amusing piece was on the &lt;a href="http://www.sics.se/%7Ejoe/apachevsyaws.html"&gt;performance of Yaws&lt;/a&gt;, the Erlang web server, which shows very high throughput compared to Apache. Yaws manages to run 80,000 parallel sessions, serviing 2 x 20KB pages whilst poor old Apache dies after 4,000.&lt;br /&gt;&lt;br /&gt;One unfortunate side effect of this would be to consume your organisation's entire bandwidth so I'll stick with Apache for now. If I want to ship that much (presumably) random data, the last tech I'll use is a web server. &lt;a href="http://enhyper.com/lib/Data_Engineering/Toolsets/HDF5/"&gt;HDF5&lt;/a&gt;, Lustre, GFS, Gigaspaces all have a better handle on this sort of data architecture.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Conclusion&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I like Erlang as a concept but they have a mountain to climb with &lt;a href="http://erlang.org/"&gt;OTP&lt;/a&gt; (the function library) if they're going to be more than niche. New features are being added all the time - the latest being a "posix like" threading library and support for SMP. Faster ASN.1 support too with the latest version. Erlang is growing up fast.&lt;br /&gt;&lt;br /&gt;For those of you interested in learning Erlang, I'd recommend starting with &lt;a href="http://www.erlang.org/download/armstrong_thesis_2003.pdf"&gt;Joe Armstrong's PhD&lt;/a&gt;&lt;a href="http://www.erlang.org/download/armstrong_thesis_2003.pdf"&gt;.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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/3778948-7617624828153925970?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7617624828153925970/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7617624828153925970' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7617624828153925970'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7617624828153925970'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2008/01/erlang-for-five-nines-talk-i-attended.html' title='Erlang for Five Nines Talk'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3002029700923816097</id><published>2007-12-18T11:47:00.002Z</published><updated>2008-07-18T08:51:25.658+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='software transactional memory'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='data parallelism'/><title type='text'>Haskell - The Next Mainstream Programming Language?</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;Steve sent a pdf by Tim Sweeney of Epic Games entitled "&lt;a href="http://www.st.cs.uni-sb.de/edu/seminare/2005/advanced-fp/docs/sweeny.pdf"&gt;The Next Mainstream Language: A Game Developers Perspective&lt;/a&gt;".  He commented "&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;While Sweeney doesn't exactly embrace Haskell, he seems certain that some variant  will prevail&lt;/span&gt;".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Sweeney's 67 page presentation is a worthwhile read. It summarises the logistics of a multi-player online game - Even250K lines of C++, highly object orientated and garbage collected with associated scripts and data files. Object state evolves with gameplay. Typically there's around 1000 classes with 10K objects active during play. Events touch about 5 objects on average.&lt;br /&gt;&lt;br /&gt;Numerical computation (for intersect detection, graph traversal etc) uses around 5 GFlops, Shading is inherently data parallel, performed on the GPU using a custom language (HLSL.)&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;&lt;/span&gt;&lt;/span&gt; &lt;span style="font-family:arial;"&gt;It uses around 500 GFLops &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The resultant code is performance-sensitive and requires highly modular design of reliable code. Sweeney comments that C++ is poorly equiped for concurrency. This is bourne out by my own experience in the early nineties with Roguewave (remind me to tell you about the eek! bug one day.) A truism is that analysing performance isn't a simple matter of identifying "hot spots" and optimising that code - or writing assembly language to get around an issue. This is never done as Sweeney notes. Event timing and handling, data structure construction, execution path may have to be revisitied resulting in a lack of productivity. A the end of the day - you have to compromise performance vs productivity.&lt;br /&gt;&lt;br /&gt;Sweeney then proceeds to deconstruct C++ as a language and Object-Orientation as a principle. As you've probably found yourself, sometimes the base class has to change - leading to significant refactoring. In particular, he slates the inability of C++ compiler to handle dynamic failure, contrasting how Haskell handles this with ease. C# also comes in for a wry observation: it exposes 10 types of integer-like data types, none of which are those defined by Pythagoras...&lt;br /&gt;&lt;br /&gt;Pushing Haskell, he hypothesises that 80% of CPU effort could be parallelised using Haskel ST -  the Strict State Thread module and, further still, that programmer "hints" can be used to guide parallelisation - stating that Haskell's &lt;a href="http://en.wikipedia.org/wiki/Monads_in_functional_programming"&gt;Monadic&lt;/a&gt; nature is a natural fit for parallelisation - imperative programming is perhaps the "wrong trousers".&lt;br /&gt;&lt;br /&gt;As I found to my cost,  "shared concurrency is [indeed] hopelessly intractible" in my "&lt;a href="http://enhyper.blogspot.com/2007/05/why-events-are-bad-idea-for-high.html"&gt;Why events are a bad idea&lt;/a&gt;" post. I too got in a mess with manual synchronisation. Sweeney also suggests as the quoted paper does, that message passing is the recipe for high performance because, when combined with software tranactional memory and multiple threads, the overhead of synchronisation is bearable when the object population his rate is small (~ 5 per 10000 per message.)&lt;br /&gt;&lt;br /&gt;The article then concludes with his musings on the next generation language. All-in-all, a  nice empirical paper from the coal face.&lt;br /&gt;&lt;br /&gt;Next, I'll cast my eye on Erlang - there's buzz there too from the finance crowd, but I know what my next language is going to be - and hit begins with H...&lt;br /&gt;&lt;br /&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/3778948-3002029700923816097?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3002029700923816097/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3002029700923816097' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3002029700923816097'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3002029700923816097'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/12/haskell-next-mainstream-programming.html' title='Haskell - The Next Mainstream Programming Language?'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2641264770068726787</id><published>2007-12-17T09:48:00.001Z</published><updated>2008-05-07T15:42:00.589+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='centroid'/><category scheme='http://www.blogger.com/atom/ns#' term='data visualisation'/><category scheme='http://www.blogger.com/atom/ns#' term='news analysis'/><title type='text'>Applied Infoviz and Knowledge Re-injection</title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;a href="http://ivtk.sourceforge.net/"&gt;The Infoviz toolkit&lt;/a&gt; is used at &lt;a href="http://www.lri.fr/%7Edtnghi/seven/"&gt;Project Seven&lt;/a&gt; by a friend of mine et al. They're working on an intelligence analysis tool which supports reinjection of explicit knowledge earlier in the categorisation/discovery chain to guide discovery.&lt;br /&gt;&lt;br /&gt;This is a different approach to the one I took in my signature based approach in my paper  "&lt;a href="http://enhyper.blogspot.com/2007/08/community-of-interest-predicated.html"&gt;Community-of-interest predicated program trading&lt;/a&gt;" where I suggested using centroid categorisation augmented with off-center categories. The Project Seven techinque relies on heuristically directed iteration (or as it's known in lay terms - trial and error) where my technique relies on the visualisation of the categorisation centroid. I think both approaches have merit and would produce good results.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/3778948-2641264770068726787?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2641264770068726787/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2641264770068726787' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2641264770068726787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2641264770068726787'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/12/applied-infoviz-and-knowledge-re.html' title='Applied Infoviz and Knowledge Re-injection'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3954971327492859510</id><published>2007-12-07T16:00:00.001Z</published><updated>2008-07-21T23:22:35.873+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='fork/join'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='parallelism'/><category scheme='http://www.blogger.com/atom/ns#' term='gpu'/><title type='text'>Fork/Join - The End of the Road for FPGA/GPU/ASIC Gang?</title><content type='html'>&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Steve W sent this article from IBM - &lt;/span&gt;&lt;a style="font-family: arial; color: rgb(0, 0, 0);" href="http://www.ibm.com/developerworks/java/library/j-jtp11137.html"&gt;Java Theory and Practise: Stick a fork in it&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;font-family:arial;" &gt;"One of the additions to the &lt;/span&gt;&lt;code style="font-family: arial; color: rgb(0, 0, 0); font-style: italic;"&gt;java.util.concurrent&lt;/code&gt;&lt;span style="color: rgb(0, 0, 0); font-style: italic;font-family:arial;" &gt; packages coming in Java™ 7 is a framework for fork-join style parallel decomposition. The fork-join abstraction provides a natural mechanism for decomposing many algorithms to effectively exploit hardware parallelism."&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Steve says "Looks like java 7 will have built-in support for the Fork/Join pattern (i.e. similar to what Erlang has and what the &lt;/span&gt;&lt;a style="font-family: arial; color: rgb(0, 0, 0);" href="http://wiki.squeak.org/squeak/"&gt;Squeak&lt;/a&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt; guys have been talking about)" &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;Is this the end for the short-lived FPGA/GPU bandwagon? It could well be - with massively multi-core chips round the corner, they are considerably more attractive an option with their on core FPU and low-latency cache etc. Solves a whole lot of issues around buying and supporting esoteric hardware it would seem.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3954971327492859510?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3954971327492859510/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3954971327492859510' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3954971327492859510'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3954971327492859510'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/12/forkjoin-end-of-road-for-fpgagpuasic.html' title='Fork/Join - The End of the Road for FPGA/GPU/ASIC Gang?'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-8514377029285295945</id><published>2007-12-03T13:52:00.000Z</published><updated>2007-12-03T14:00:43.022Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; font-family: arial; color: rgb(204, 102, 0);"&gt;Talk: Erlang for Five Nines by Francesco Cesarini&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Looks like an opportunity for a beer afterwards?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;" class="normal"&gt;&lt;span style="font-style: italic;"&gt;"Francesco Cesarini will be presenting the concurrent soft real time functional programming language Erlang and its rapidly growing community. He will describe why Erlang programs are generally 4 - 10 times shorter than their counterparts in Java, C and C++ achieving 99,999% availability. Ongoing research projects in the UK and overseas which will be covered, including refactoring, AI, type systems and control systems for robots. The talk will also go into why Erlang, originally invented to handle the next generation of Telecom products, has been successful in a much wider range of sectors including banking and e-commerce. "&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: arial;" class="normal"&gt;&lt;b&gt;Date:&lt;/b&gt; Thursday, 13th December 2007&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Time:&lt;/b&gt;18:30-20:30&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Venue:&lt;/b&gt;&lt;br /&gt;Skills Matter&lt;br /&gt;1 Sekforde Street&lt;br /&gt;London EC1R 0BE&lt;br /&gt;Near Farringdon Rail/Tube&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;Registration &lt;/span&gt;&lt;a style="font-family: arial;" href="http://skillsmatter.com/menu/85"&gt;http://skillsmatter.com/menu/85&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-8514377029285295945?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/8514377029285295945/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=8514377029285295945' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8514377029285295945'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/8514377029285295945'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/12/talk-erlang-for-five-nines-by-francesco.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-9113755143505046127</id><published>2007-11-29T10:19:00.001Z</published><updated>2008-07-14T09:32:47.191+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='k-way merge sort'/><category scheme='http://www.blogger.com/atom/ns#' term='high performance computing'/><category scheme='http://www.blogger.com/atom/ns#' term='numa'/><title type='text'>One Thread Per Core</title><content type='html'>&lt;span class="683250810-29112007"&gt;&lt;span style="color: rgb(0, 0, 255);font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Way back in 1990, when I was performance tuning Ingres on a multi-processor Sequent machine, I found that using processor affinity - ie tieing the main process to a particular CPU gave the best performance. Intuitively I figured that this was due to not having to context switch but never had the time to prove my theory.&lt;br /&gt;&lt;br /&gt;More recently, &lt;a href="http://lse.sourceforge.net/numa/faq/"&gt;numa&lt;/a&gt; issues have been surfacing again in the search for low latency.&lt;br /&gt;&lt;br /&gt;A friend of mine has recenly been looking at &lt;a href="http://www.nist.gov/dads/HTML/balanckwayms.html"&gt;k-way sorting&lt;/a&gt; and the thread scheduling again has come into play. I have always been curious about the analysis of Numa architecture but never got to spend that much time on it. In the old days of  single core, context would have to be shared over the bus, Numa was a great advance, introducing a high performance inter-cpu/die channel with about 6GB/s throughput. Now with multicore it's all on the die but appears to be still an issue as the following results show from a friend show:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The k-way merge sort looks pretty good, almost twice as fast as  a mono-threaded quicksort. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Here some results for 10 millions numeric  (double) values to sort :&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;sort 1st part done (parallel segments) in  3672ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 2nd part done in 3157ms   niter=19999993&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for k-way  merge sorting 10000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;6922 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for  monoquicksorting 10000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;13609 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Now if you  look at the performance variation when sorting 2 millions items, it appears that  the best performance occurs when the number of parallel sorting threads equals  the number of core available from the CPU (my box is a mono quad-core Xeon 5355  2.6Ghz) : &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;2 threads used:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 1st part done (parallel segments) in  1031ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 2nd part done in 469ms   niter=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1999999&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for  k-way merge sorting 2000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1562 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for  monoquicksorting 2000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1984 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;3 threads used :  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 1st part done (parallel segments) in 688ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 2nd part done in  563ms   niter=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;3333329&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for k-way merge sorting 2000000  double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1281 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for monoquicksorting 2000000 double  values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;2015 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);font-family:arial;" &gt;&lt;b&gt;4 threads used :&lt;br /&gt;sort  1st part done (parallel segments) in 516ms&lt;br /&gt;sort 2nd part done in 594ms    niter=3999995&lt;br /&gt;Total time for k-way merge sorting 2000000 double values=1125  ms&lt;br /&gt;Total time for monoquicksorting 2000000 double values=2000  ms&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;8 threads used : &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 1st part done (parallel segments)  in 437ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 2nd part done in 781ms   niter=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;5999991&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for  k-way merge sorting 2000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1234 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for  monoquicksorting 2000000 double values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;2047 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;16 threads used :  &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 1st part done (parallel segments) in 391ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;sort 2nd part done in  906ms   niter=7999975&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for k-way merge sorting 2000000 double  values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;1313 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Total time for monoquicksorting 2000000 double  values=&lt;/span&gt;&lt;b style="font-family: arial;"&gt;2031 &lt;/b&gt;&lt;span style="font-family:arial;"&gt;ms&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-9113755143505046127?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/9113755143505046127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=9113755143505046127' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9113755143505046127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/9113755143505046127'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/11/one-thread-per-core-way-back-in-1990.html' title='One Thread Per Core'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6034857920894640071</id><published>2007-11-08T15:59:00.000Z</published><updated>2007-11-08T17:04:26.252Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='Microsoft'/><category scheme='http://www.blogger.com/atom/ns#' term='Market Data'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold; color: rgb(204, 102, 0); font-family: arial;font-family:arial;" &gt;LSE Goes Boom!&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;"&gt;"No other exchange is undertaking such an ambitious technology refresh programme based on next-generation Microsoft technology. We have always provided a first-class service, but now we can claim to be the fastest in the world as well."&lt;/span&gt;&lt;br /&gt;  &lt;i style="font-family: arial;"&gt;- David Lester, CIO, London Stock Exchange&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;Now I wonder why no other exchange uses Microsoft technology for high performance messaging then...&lt;br /&gt;&lt;br /&gt;The LSE was a big coup for Microsoft - one of the worlds leading exchanges which, until the Infolect platform based on .Net technology came along, had no outages since 1987. Even more embarassing are the anti-linux rhetoric contained in the "Get The Facts" campaign quoting the above David Lester quote - a nice analysis of which you can find &lt;a href="http://blogs.zdnet.com/Murphy/?p=739"&gt;here&lt;/a&gt; from Paul Murphy. He  concludes that the so called high performance message delivery is the same as a "&lt;/span&gt;relatively slow LAN".&lt;br /&gt;&lt;br /&gt;This won't be the last time this occurs - in my operational experience, solutions based on .Net exhibited mysterious freezes which were never solved.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;&lt;br /&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/3778948-6034857920894640071?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6034857920894640071/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6034857920894640071' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6034857920894640071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6034857920894640071'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/11/lse-goes-boom-no-other-exchange-is.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6150430571904728345</id><published>2007-11-08T07:26:00.001Z</published><updated>2008-05-19T14:02:06.619+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Peer-to-peer'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC Architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='messaging'/><title type='text'>The Transition from N-Tier to High Performance Architecture</title><content type='html'>&lt;span style="font-family:arial;"&gt;This is a little story of Anybank, who have a classic three-tier architecture using in-house developed solutions. They are embarking on a plan to improve the architecture, aiming for scalability, globalisation and integration in order to meet predicted growth in volumes.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In order to achieve this, the architecture will be transitioned from a transaction-orientated platform to an event-driven, peer-to-peer, asynchronous, persistent messaging-based architecture. Anybank have recognised that in order to achieve this, they must move away from in-house developed solutions and take advantage of open source and third-party products.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;Architectural Components&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Anybank have a classic three-tier architecture with a moderate level of fan out/in.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;At the front end, there are a series of internal trading and control applications and several external client applications and gateways to systems such as FIX.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The communication from tier 3 to tier 2 is TCP based, carrying FIX or HTTP traffic to series of middle tier servers. Additionally, there is a custom protocol used by the thick client to talk to the middle tier servers. This is an efficient ASCII based protocol with pipe-delimited fields.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;" &gt;External Applications&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The system has FIX connections to several exchanges and markets. Clients have a choice of a thick client or a web front end. Quotes are sent over FIX at a rate of 4/second.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;Internal Applications and Services&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;There are several internal applications that are used by trading, credit and risk control and operations. The connections to these are managed by a series of front office servers and talk to the database tier for information. They run a generic set of applications that would be found in any other bank:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Market Making, Trading Station and Sales Trader Workbench: Prop. trading tools&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Session Management: Routing, STP gateways, reception of execution reports.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Order Moniting: provides snapshot requests and streaming prices&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Client Margin Calculation Engine: Limit checking, credit check, event publishing service&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Exposure and Barrier Monitoring&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Front Office Server: Authentication, Authorisation and Access control (AAA), Event notification.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Trade Server: Visual trading, large trades and limit trading.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Market Data Servers: Takes streaming market prices from feed handlers and distributes Market Data&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Metrics and SLA monitoring&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The current system handles thousands of daily trades with a peak rate of 200/second. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;Latency across several systems is in the order of .5 – 1 second with a desire to improve this figure across the board.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;"&gt;Anybank Tiered Architecture Analysis&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;Several key components have been targeted in an attempt to reduce potential bottlenecks in the system. Serial activities are being replaced with parallel activities, single threaded code is being rewritten to be multhreaded.&lt;br /&gt;&lt;br /&gt;However, by applying HPC techniques and chosing the right products, we can gain significant performance quickly and robustly.&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;Tier 1 - Database Persistence Layer&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;This is the database layer, which is currently a replicated SQL Server. As with all relational databases, the maximal transaction rate is a function of the IO subsystem, log file transaction rate, number of indexes, data volumes and access patterns. Typically, one can expect a transaction rate of between 1-5 thousand transactions per second, which translates into 5-1 milliseconds per transaction.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Business level transactions may consist of many database transactions, which results in the potential for adding considerable latency to client and API calls.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;Tier 2 - Application Services and Access Control Layer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The application logic layers combines authentication, access control and authorisation with business logic, static and derived data, streaming market data and database transactions. It is traditionally at this layer where fan-in/out is facilitated.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;Tier 3 - Application Layer&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;The application layer consists of traditional thick, web and FIX clients, each with their own particular data access profile. Thick clients typically are used when streaming data is consumed by, for example, a pricing application. They may consume data delineated by topic or routed by function.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Web clients typically consume http/https/javascript and/or xml data to drive form-based, browser applications.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;FIX clients can potentially deliver 100K messages per second when using FAST, the FIX compression protocol.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;HPC Tools Applied to Anybank&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The architecture is in transition from client server to an event-based and message orientated structure in order to increase resilience and enable scalability. The architecture has already some elements of fan out via multiple services connected via TCP.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;There are opportunities to augment the current architecture and improve transaction capacity whilst reducing latency in each of the three tiers of the current Anybank architecture using Open Source messaging and caching products which have proven robustness in real-world applications.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;Tier 1 and 2 - Peer-to-peer Message Bus&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The  publish and subscribe paradigm is ideal to use where multiple senders and receivers or combinations of the two are present and is common pattern for trading applications where prices, curves, derived data, immediate messages and topic based mechanisms need to be catered for.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;In Tier 1 and 2, it is proposed to use the &lt;a href="http://sourceforge.net/projects/mantaray/"&gt;MantaRay&lt;/a&gt; peer-to-peer messaging product to provide message caching to tier 2 applications and services, effectively decoupling tier 1 and 2. MantaRay Messaging persistence logic guarantees delivery to unavailable peers once they come back online. Sending nodes need not await responses from a broker before resuming&lt;br /&gt;other tasks. Such capabilities are critical issues in high availability environments.&lt;/span&gt;&lt;span style="font-family:arial;"&gt; This is considerably faster than a synchronous database access thereby accelerating application performance.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;Also In tier 2, application/service fan out will be added using the pub/sub capabilities of the MantaRay solution. &lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Reliable Multicast over the WAN&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;MantaRay also has a WAN Bridge capability which accepts connections from other MantaRay peers thereby getting around multi-cast over the WAN issues.&lt;/span&gt;&lt;span style="font-family:arial;"&gt; This would allow the mixing of the benefits of multicast with the recoverability of MantaRay.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;This could be used to distribute real-time market data globally. Peer-to-peer is ideal for this purpose. It can be configured to deliver topic orientated messages over multiple multicast streams, layering the topics in order to use bandwidth effectively using source paced delivery which would be ideal for Anybank.&lt;br /&gt;&lt;br /&gt;to be continued...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6150430571904728345?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6150430571904728345/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6150430571904728345' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6150430571904728345'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6150430571904728345'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/11/painful-transition-from-n-tier-to-high.html' title='The Transition from N-Tier to High Performance Architecture'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2634679371951941509</id><published>2007-10-31T13:33:00.001Z</published><updated>2008-07-14T09:31:45.796+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASN.1'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><title type='text'>Merchant Bankers finally get the Internet and FIX?</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="color: rgb(0, 0, 0);font-family:arial;" &gt;&lt;span style="font-size:100%;"&gt;From second &lt;a href="http://books.google.com/books?id=HnOLSukGAs8C&amp;amp;pg=PA203&amp;amp;lpg=PA203&amp;amp;dq=tanenbaum+elephant&amp;amp;source=web&amp;amp;ots=RogSUEdb3J&amp;amp;sig=xkkmRUuumzlavYwKJup54otc2yc"&gt;Tanenbaum elephant&lt;/a&gt; hump comes &lt;a href="http://www.financetech.com/feed/showArticle.jhtml?articleID=202600761&amp;amp;cid=RSSfeed_FTN_All"&gt;the story &lt;/a&gt;about how emerging markets are booming because of gasp! - the application of internet technology to investment banking. It's rather ironic that the technology was there in 1970 - trouble was - the business just wasn't listening - messaging is as old as the hills - FIX is messaging in verbose clothing (XML) - suitable for the trading of web "services" by the externalisation of business processes as I observed in my 1999 paper on "&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://www.enhyper.com/content/iee_16_Dec_99_1.htm"&gt;&lt;span style="font-family:Arial,Helvetica;"&gt;The Role of XML in Enabling Business Solutions Built from Collaborative Web-Based Services&lt;/span&gt;&lt;/a&gt;".&lt;/span&gt; &lt;span style="font-family:arial;"&gt;This was further extended in the blog article &lt;a href="http://enhyper.blogspot.com/2007/05/from-corba-to-command-and-control-web.html"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&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/3778948-2634679371951941509?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2634679371951941509/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2634679371951941509' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2634679371951941509'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2634679371951941509'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/10/merchant-bankers-finally-get-internet.html' title='Merchant Bankers finally get the Internet and FIX?'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6606267554791692052</id><published>2007-10-29T19:22:00.000Z</published><updated>2007-10-31T00:38:31.512Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='password security'/><title type='text'></title><content type='html'>&lt;span style="font-family: arial;"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Pot, Kettle, Black&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;I had to laugh last week, when I had dinner conversation with an IT journalist. Some fairly innocent conversation about firearms, internet security and shredding documents came up. But whilst the journalist writes stirring columns about ecommerce; security; credit card fraud and atms, he blanked me when asked about identity theft and cross-shredding shredders. Of course he has home insurance, and expects some sort of burgalar. But stealing credit card statements and gas bills. Thats the assumption that his new live-in girlfriend wont read through the pile, and decide what he can afford or not for xmas. So where does this guy keep his password or atm pin. Oh how silly of me, its in his wallet of course. (that I dared not to ask)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6606267554791692052?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6606267554791692052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6606267554791692052' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6606267554791692052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6606267554791692052'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/10/i-had-to-laugh-last-week-when-i-had.html' title=''/><author><name>E-Ness</name><uri>http://www.blogger.com/profile/10047632360517316418</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1106553735104911416</id><published>2007-09-03T15:51:00.001+01:00</published><updated>2007-09-03T16:06:19.384+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='internet'/><category scheme='http://www.blogger.com/atom/ns#' term='intellectual property'/><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;IP and the Internet&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;A friend of mine, Dr Tim Sampson is running an event on the above subject. Areas he will cover are:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;D&lt;span style="font-family:arial;"&gt;omain name rights and linking&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Copyright, database rights, framing and “borrowed content”;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;The Use and Abuse of Branding on Websites and Trademark and brand issues;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Advertising via the Web – Its Limits and Liabilities;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Digital Downloads – What you can and cannot do;&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Streaming, Webcasting and Internet TV&lt;/li&gt;&lt;li style="font-family: arial;"&gt;Patents and Designs&lt;/li&gt;&lt;li style="font-family: arial;"&gt;The Trade in Regulated Goods&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:arial;"&gt;Commercial Exploitation of Database Rights over the Web&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;Tim is an excellent speaker. If you would like to attend, &lt;a href="http://enhyper.com/content/ipevent.pdf"&gt;the flyer is here&lt;/a&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;&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/3778948-1106553735104911416?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1106553735104911416/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1106553735104911416' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1106553735104911416'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1106553735104911416'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/09/ip-and-internet-friend-of-mine-dr-tim.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1368446931845940031</id><published>2007-08-29T11:04:00.000+01:00</published><updated>2007-08-29T11:50:32.148+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='geek beer'/><title type='text'></title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Beer in the Evening - Data Parallelisation and Functional Languages in Finance  - September 25th 2007&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It's been suggested that we get together again for another beer in the evening by John Barr who has recently joined the 451 Group from Intel. John wrote an article called &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:100%;"&gt;"Reinventing the future: parallelism and acceleration" which tracked the recent rise in accelerated computing and is a comprehensive review of the area.&lt;br /&gt;&lt;br /&gt;I'll put up some reading material in due course. Watch this space.&lt;br /&gt;&lt;br /&gt;So if you're up for a beer and a casual chat about HPC, HFF, low latency, parallelism, messaging vs events etc we'll be meeting in the &lt;a href="http://fancyapint.com/pubs/pub2823.html"&gt;Red Lion, 8 Lombard Court, London from 630pm onwards on the 25th September.&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;You can call me or email on 0791 505 5380 or rgb at enhyper.com if you have any questions.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0);font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&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/3778948-1368446931845940031?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1368446931845940031/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1368446931845940031' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1368446931845940031'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1368446931845940031'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/08/beer-in-evening-data-parallelisation.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-649216916401486711</id><published>2007-08-29T09:24:00.001+01:00</published><updated>2008-05-15T15:30:37.839+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='log file analysis'/><title type='text'>Micro and Macro Performance Analytics - a Log with Two Tales</title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:130%;"  &gt;&lt;span style="font-weight: bold;"&gt;Micro and Macro Performance Analytics - a Log with Two Tales&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;br /&gt;Sometime when we measure things we end up introducing latency into the system. I recently came across a neat scheme where a timing message was “stamped” on every hop then rerouted to the source. The average round trip time was calculated by dividing the elapsed time in two. The overall times produced were adequate for what the guy required but there was an annoying latency spike which happened periodically and was a cause for concern.&lt;/span&gt;  &lt;span style="font-family:arial;"&gt;The average trip time from source to receiver was 900 microseconds. Occasionally, a 9 millisecond time was reported which, if echoed in production, would have been unacceptable. To find the problem, all the messages above 1ms were tagged and &lt;span style="font-family:courier new;"&gt;grep&lt;/span&gt;’d out into a file. Using &lt;span style="font-family:courier new;"&gt;vi&lt;/span&gt; to analyse this log file, it was noted that the latency spikes had a definite periodicity of around 600ms.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;Visual inspection is a great technique as the brain is good at recognising patterns. However, as we can now generated millions of log entries per second, this tactic has severe limitations in that it highlights micro trends, therefore It’s important to visualise the data too so that macro trends can be recognised. Luckily I did as there was one lurking in the data. &lt;/span&gt;  &lt;span style="font-family:arial;"&gt;I took a minute’s worth of &gt;1ms log file entries and manipulated them in good old excel to produce the graph below:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_G86K0wbY_rs/RtUwaTC3eJI/AAAAAAAAACw/HlpPeFlIvfQ/s1600-h/latencyspike.JPG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_G86K0wbY_rs/RtUwaTC3eJI/AAAAAAAAACw/HlpPeFlIvfQ/s200/latencyspike.JPG" alt="" id="BLOGGER_PHOTO_ID_5104038981041354898" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;As you see from the graph, there's a an obvious 10 second event which is highly regular in it's form.  On further investigation, it turned out to be a call to a summarisation routine which caused the spikes to cease momentarily. Now it's lucky this was found using a synthetic load - in production, it could be a lot more difficult to spot. On the plus side, it's nice to come across a well designed load simulation - this is seldom the case. People are prone to quote averages and pay little attention to the spikes - but in high frequency trading, it's the spike that will lose you big money.&lt;br /&gt;&lt;br /&gt;So, be careful what you measure and be careful that by measuring, you don't introduce side effects which could so easily be hidden in production.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&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/3778948-649216916401486711?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/649216916401486711/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=649216916401486711' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/649216916401486711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/649216916401486711'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/08/micro-and-macro-performance-analytics.html' title='Micro and Macro Performance Analytics - a Log with Two Tales'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_G86K0wbY_rs/RtUwaTC3eJI/AAAAAAAAACw/HlpPeFlIvfQ/s72-c/latencyspike.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7157917928130585108</id><published>2007-08-01T15:50:00.000+01:00</published><updated>2007-08-01T17:19:07.613+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='program trading'/><category scheme='http://www.blogger.com/atom/ns#' term='news analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='community of interest'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0); font-family: arial;"&gt;Community of Interest Predicated Program Trading&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0); font-family: arial;"&gt;&lt;span style="font-family: arial;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;I've had my paper on the above reviewed and accepted for publication and presentation to the Knowledge Management stream of this year's Operational Research Society conference, &lt;a href="http://www.orsoc.org.uk/orshop/%28g4q0naqibgdpp255tywvfanz%29/orcontent.aspx?inc=or49_main.htm"&gt;OR49 in Edinburgh&lt;/a&gt;. I'll be attending the conference for the three days and hanging out with Dr Duncan Shaw, an expert in &lt;a href="http://en.wikipedia.org/wiki/Soft_systems"&gt;Soft Systems Methodologies&lt;/a&gt; at Aston University.&lt;br /&gt;&lt;br /&gt;You can download the paper from the Enhyper site &lt;a href="http://enhyper.com/content/OR49paper.doc"&gt;here&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&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/3778948-7157917928130585108?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7157917928130585108/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7157917928130585108' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7157917928130585108'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7157917928130585108'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/08/community-of-interest-predicated.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6339129611195138029</id><published>2007-07-20T11:53:00.000+01:00</published><updated>2007-07-20T12:00:06.654+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='messaging design pattern'/><title type='text'></title><content type='html'>&lt;span style="font-family: arial;font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;A Design Pattern Template for High Performance Messaging&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;"&gt;This is a work in progress. High performance messaging is hard. There are many parameters which can be configured (or misconfigured) so I'm working on a series of pattern templates. Work in progress...&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Pattern Name&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;         &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;{ Source: Single.All Topics, Receiver: Multiple.All Topics }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Synonyms&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;       &lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Related Patterns&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;        &lt;/span&gt;{ Source: Per Topic, Receiver: Per Topic }&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Overview&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Topic Methodology&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;Source per topic&lt;br /&gt;       { Single.Source , Receiver.All Topics }&lt;br /&gt;     &lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Group Rate Control Policy&lt;/span&gt;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;        Extreme 1  { Sender.Rate.Slowest Receiver, Reciever:at leisure)&lt;br /&gt;        Extreme 2  { Sender: Fast As Possible, Receiver: Try to keep up)&lt;br /&gt;        Middle Ground (Send.Minimum Data Loss, Receiver.Minimise  Latency)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Transport Protocol&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Example&lt;br /&gt;&lt;br /&gt;Diagram&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Operating Environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Related Patterns&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6339129611195138029?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6339129611195138029/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6339129611195138029' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6339129611195138029'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6339129611195138029'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/design-pattern-template-for-high.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4567529424348237464</id><published>2007-07-20T11:13:00.000+01:00</published><updated>2007-07-20T11:22:26.267+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='disk performance analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='hfc'/><title type='text'></title><content type='html'>&lt;span style="font-family: arial;font-size:130%;" &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;So How Fast is an APR Hash Table?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Just ran a quick metric on uploading approx 20K stock information items into an &lt;a href="http://apr.apache.org"&gt;APR&lt;/a&gt; hash table on a heavily loaded (load avg ~4), Sparc III based Solaris 8 machine. It took 32ms to load which works out roughly 1 microsec per apr_hash_set() call. Each data item was roughly 140 bytes long - not bad for an old machine.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;&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/3778948-4567529424348237464?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4567529424348237464/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4567529424348237464' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4567529424348237464'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4567529424348237464'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/so-how-fast-is-apr-hash-table-just-ran.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2266592336205908551</id><published>2007-07-18T14:55:00.000+01:00</published><updated>2007-07-20T10:38:25.241+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='platform reliability'/><category scheme='http://www.blogger.com/atom/ns#' term='HFF'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;" &gt;Developers, Developers, Developers?&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;If I could summarise, in one word, the general trend in Investment Banking IT over the last 8 years I'd  say it's been one of mediocrity.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt; However, thanks to the demands of High Frequency Finance, the tide is turning back towards hiring talented programmers capable of working closely with the business to craft high performance, high quality solutions that deliver real competitive edge. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;It's beginning to feel like the old days, when the focus was on technical excellence and delivery. &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;This sorry state has come about by the ingress of consultancy-led management (ie writing endless documents not code) and reinforced by HR policies such as "segmentation" where the aim of the bank is to hire average programmers at average salaries - indefensible. I'd rather pay top dollar for a girl/guy who can get the job done in a 10th of the time and cost.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;I'm sure we've all seen the infamous "&lt;a href="http://www.google.co.uk/url?sa=t&amp;ct=res&amp;amp;cd=1&amp;url=http%3A%2F%2Fwww.youtube.com%2Fwatch%3Fv%3D8zEQhhaJsU4&amp;amp;ei=KnigRvnBBo3i0QS4spQz&amp;usg=AFQjCNGQ_GmrZmFDmt3CujYTYFg-vVaLpQ&amp;amp;sig2=7GdqD6gtGBGWL_YJkO_uFQ"&gt;Developers, developers, developers&lt;/a&gt;" video - quite bizarre. I beg to differ, in Investment Banking (IB) I'd say it's "Traders, traders, traders" - at the end of the day - the business pays the wages...&lt;br /&gt;&lt;br /&gt;I remember my first interview with a scary looking, fast talking New Yorker who ranted for half an hour about "only hiring the best in the world" - gulp I thought. All of a sudden he stopped and said - over to you. I told him - hey look - I'm not the best in the world - but I've done x, y and z etc - he said - right - you're hired on the spot. It was a big shock, I turned up first day in a new suit, so nervous that I forgot to cut the tags off. I was working with 40 quants (mathematicians/physicists mostly), working on fixed income stuff that was way over my head at the time. And so began my career delivering production quality solutions. Some good advice given to me when I first darkened the doors of a prestige tier 1 IB in 1996:&lt;br /&gt;&lt;br /&gt;- No one will tell  you what to do here - it's up to  you to make your own role.&lt;br /&gt;- IB is all about making money - not about elegant, cost-efficient architectures.&lt;br /&gt;&lt;br /&gt;Today, however, the attitude of some developers in beggars belief. I was talking a guy a little while back who said "I don't care if a trade takes half a second or a second to route - I like programming in language X on platform P - it has a nice environment and is very productive". Sure it's nice and quick, how stable is the platform though? What about scalability? What's the &lt;a href="http://www.devsource.com/article2/0,1895,2063854,00.asp"&gt;clock resolution&lt;/a&gt; of the platform? How fast can it handle low-latency high performance streaming messages?&lt;br /&gt;&lt;br /&gt;High Frequency Finance demands high performance data, calculations and messaging combined with a stable platform which scales well. Some platforms just aren't up to the job - caveat architectos.&lt;br /&gt;&lt;br /&gt;To illustrate, I was flying to the States last week and enjoying the in-flight movies. The interface was perfunctory and seemed to do the job. I paused the movie a couple of times and noticed that the screen froze as expected but when I resumed it had been playing in the background all along. I then tried to rewind - and that didn't work either. Now lying to users is not good - not good at all. Then someone complained that their movie had "crashed" - so the steward decided to "restart the system". As soon as the first selection screen came back up - the whole plane pressed the movie button - boom! The system had to be restarted again, and again, and again. I never did see the end of the film. So you think I'm going to use this platform to build a trading system? Perhaps not...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;" &gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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/3778948-2266592336205908551?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2266592336205908551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2266592336205908551' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2266592336205908551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2266592336205908551'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/developers-developers-developers-if-i.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7092444300315543425</id><published>2007-07-14T16:59:00.001+01:00</published><updated>2007-07-15T20:12:07.348+01:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(153, 51, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Saturday Afternoon Puzzle Club&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A couple of weekends ago my daughter and I sat down with a &lt;a href="http://www.mensa.org.uk/cgi-bin/item.cgi?id=201&amp;u=pg_dtl_art_news&amp;amp;m=pg_hdr_art"&gt;brainpower DVD&lt;/a&gt; we picked up from the Times earlier this year. While we found that we could make good progress on most of the analytical puzzles as long as we spent enough time on each problem, we are unfortunately both quite lazy, and it didn't take long for us to start cheating.&lt;br /&gt;&lt;br /&gt;For example:&lt;br /&gt;&lt;blockquote&gt;When the letters of the following words are placed together how many eight letter words can you form?&lt;p&gt;VINE + FROG&lt;/p&gt;&lt;/blockquote&gt;The anagram puzzles are easiest to cheat on. All you need is a program that computes all the permutations of the letters and looks each resulting word up in an online dictionary to see if it's there. Now it's easy enough to find an &lt;a href="http://wordsmith.org/anagram/"&gt;online anagram search&lt;/a&gt; to do this, so you don't have to write one yourself.&lt;br /&gt;&lt;p&gt;But what happens if you have to compute the permutations of something other than letters in words, in particular, mathematical symbols?&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;Assume you are using a basic calculator. Press the numbers in order and replace each question mark, as you go, with a mathematical symbol. Using plus, minus, multiply and divide once only how many different arrangements are there for this equation to equal four?&lt;br /&gt;&lt;p&gt;7 ? 1 ? 7 ? 7 ? 4 = 4&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;In this case, you could evaluate the above expression with all permutations of the four symbols: * - / + and reject the ones that don't match. Now I realise that it would take longer for me to write a program to do this than it would for an eight-year-old to sit down and work out each of the possible values, but earlier this week I picked up the &lt;a href="http://www.amazon.co.uk/Art-Computer-Programming-Fascicle-Permutations/dp/0201853930/ref=pd_sim_b_2_img/203-6839306-8883941?ie=UTF8&amp;qid=1184431349&amp;amp;sr=1-5"&gt;second and third fascicles&lt;/a&gt; of Volume 4 of Donald Knuth's Art of Computer Programming, and I felt like coding.&lt;br /&gt;&lt;br /&gt;Algorithm L (&lt;span style="font-style: italic;"&gt;lexicographic permutation generation&lt;/span&gt;) looks like this in Smalltalk:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;LexicalPermutor &gt;&gt; permute: aSequenceableCollection&lt;/span&gt;&lt;br /&gt;| n j l k |&lt;br /&gt;&lt;br /&gt;"Precondition: the sequence is sorted lexicographically - necessary for step L3 to work"&lt;br /&gt;sequence := OrderedCollection withAll: aSequenceableCollection asSortedCollection.&lt;br /&gt;n := sequence size.&lt;br /&gt;&lt;br /&gt;[&lt;br /&gt; "L1. visit the sequence"&lt;br /&gt; visitor visit: self.&lt;br /&gt;&lt;br /&gt; "L2. find j, the smallest subscript such that all permutations up to j have been visited"&lt;br /&gt; j := self smallestSubscriptVisited.&lt;br /&gt;&lt;br /&gt; "L3. increase a[j] (the current element in the sequence)"&lt;br /&gt; l := n.&lt;br /&gt; [(sequence at: j) &gt;= (sequence at: l)] whileTrue: [ l := l - 1 ].&lt;br /&gt; sequence swap: j with: l.&lt;br /&gt;&lt;br /&gt; "L4. reverse a[j+1]...a[n]"&lt;br /&gt; k := j + 1.&lt;br /&gt; l := n.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size: 85%;"&gt;  [ k &lt; l ] whileTrue: [&lt;br /&gt;   sequence swap: k with: l.&lt;br /&gt;   k := k + 1.&lt;br /&gt;   l := l - 1 ].&lt;br /&gt;&lt;br /&gt; ] repeat ]&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;where step L2 finds the smallest substring that hasn't yet been permuted (and also provides us with a stopping condition)&lt;br /&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;LexicalPermutor &gt;&gt; smallestSubscriptVisited&lt;/span&gt;&lt;br /&gt;| j |&lt;br /&gt;&lt;br /&gt;j := sequence size - 1.&lt;br /&gt;&lt;br /&gt;[(sequence at: j) &gt;= (sequence at: j+1)] whileTrue: [&lt;br /&gt; ((j := j - 1) = 0)&lt;br /&gt;     ifTrue: [PermutationCompleteException raise]].&lt;br /&gt;&lt;br /&gt;^j&lt;/span&gt;&lt;/pre&gt;The cool thing about this is that you can pass in any sequence of symbols you want - for example you could pass in the string 'vinefrog' and have a visitor class that looks up the value in a dictionary.&lt;br /&gt;&lt;p&gt;At the beginning of the book Knuth says that &lt;span style="font-style: italic;"&gt;enumerating &lt;/span&gt;the permutations is just a fancy way of saying that we are &lt;span style="font-style: italic;"&gt;counting &lt;/span&gt;them, which is actually not very interesting. Nor is it interesting to &lt;span style="font-style: italic;"&gt;list &lt;/span&gt;them. What we want to do is &lt;span style="font-style: italic;"&gt;visit &lt;/span&gt;them and do something intelligent. The visitor is doing the application-specific stuff, and the permutation algorithm essentially acts as a black box.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In this particular example, we want the visitor to evaluate an expression and only write an answer if the result is the same as some target value.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The permutation algorithm lives in a class called LexicalPermutor, and the visitor is called a FunctionListVisitor, which gets initialized with some parameters and a target value:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;LexicalPermutor class &gt;&gt; example&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;| permutor visitor |&lt;br /&gt;&lt;br /&gt;permutor := LexicalPermutor new.&lt;br /&gt;visitor := FunctionListVisitor new&lt;br /&gt; numberList: #(7 1 7 7 4);&lt;br /&gt; target: 4.&lt;br /&gt;permutor accept: visitor.&lt;br /&gt;permutor permute: '+-*/'.&lt;/span&gt;&lt;/pre&gt;&lt;p&gt;To answer the puzzle then, all we need is a visit: method that evaluates the expression, tests the result and prints a message if it finds something interesting:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;visit: aTarget&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;[accumulatedValue := numberList first.&lt;br /&gt;aTarget sequence keysAndValuesDo: [ :index :function |&lt;br /&gt; accumulatedValue := accumulatedValue perform: function asSymbol with: (numberList at: index + 1) ]]&lt;br /&gt;     on: Number divisionByZeroSignal&lt;br /&gt;     do: [ :ex | ^self ].&lt;br /&gt;&lt;br /&gt;"Notify the world of successful evaluation"&lt;br /&gt;(accumulatedValue = target)&lt;br /&gt; ifTrue: [&lt;br /&gt;     total := total + 1.&lt;br /&gt;     Transcript cr; show: total printString; tab.&lt;br /&gt;     self print: aTarget sequence on: Transcript withResult: target ]&lt;/span&gt;&lt;/pre&gt;The first block of code just does what your calculator would do as you successively go through and &lt;span style="font-family:courier new;"&gt;perform: &lt;/span&gt;the function on the accumulated result (with a check for division by zero).&lt;br /&gt;&lt;p&gt;The second block just prints the result, which looks like this:&lt;br /&gt;&lt;/p&gt;&lt;pre&gt;1    7 * 1 - 7 / 7 + 4 = 4&lt;br /&gt;2    7 * 1 / 7 + 7 - 4 = 4&lt;br /&gt;3    7 + 1 * 7 / 7 - 4 = 4&lt;br /&gt;4    7 + 1 / 7 * 7 - 4 = 4&lt;br /&gt;5    7 / 1 - 7 * 7 + 4 = 4&lt;br /&gt;&lt;/pre&gt;The answer is 5. But I knew that because an eight-year-old told me the answer before I could figure it out for myself.&lt;br /&gt;&lt;p&gt;The visitor to solve the following puzzle is very similar to the one above:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;Assume you are using a basic calculator and press the numbers in the order shown, replacing each question mark with a mathematical sign. Plus, minus, multiply and divide can each be used once only. What is the highest number you can possibly score?&lt;br /&gt;&lt;p&gt;7 ? 6 ? 1 ? 8 ? 9 = ?&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;The next step is to look algorithms to generate combinations of t items taken n at a time. This will solve puzzles like this:&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;Add together three of the following numbers each time to score 18. How many different combinations are there to do this?&lt;br /&gt;&lt;p&gt;0 4 6 8 10 12 14&lt;/p&gt;&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-7092444300315543425?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7092444300315543425/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7092444300315543425' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7092444300315543425'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7092444300315543425'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/saturday-afternoon-puzzle-club-couple.html' title=''/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3205647243905371110</id><published>2007-07-07T22:34:00.000+01:00</published><updated>2007-07-07T23:33:07.613+01:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;PR Surgery Disasters&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It seems that hardly a week goes by anymore that some firm or another is blindsided by blog reports of bad customer service or legal departments run amok. Often the matter is made worse because the company is completely unaware of the extent to which the incident has been reported. While unfortunate events cannot always be prevented, being aware of what's going on can help prevent a misunderstanding from becoming a nightmare.&lt;br /&gt;&lt;br /&gt;But search engines are only of limited use. Many people who read a lot of blogs gave up on browsing web sites long ago and instead use feed aggregators to keep up with the volume of their news. However, even aggregators are overwhelming at times and sophisticated processing rules are becoming widespread. The results need to be accessible and easily understood.&lt;br /&gt;&lt;br /&gt;In particular, the &lt;a href="http://datamining.typepad.com/data_mining/2007/07/reputica-media-.html"&gt;Data Mining blog&lt;/a&gt; points us to a new system called &lt;a href="http://www.reputica.com/dashboard/index.html"&gt;Reputica&lt;/a&gt; which provides an ongoing reputation metric for your firm, brand or product.&lt;br /&gt;&lt;blockquote&gt;The key to our service is in using Reputica's unique software to predict how information will disseminate across various media platforms. In other words, if a negative blog comes out one day, Reputica can predict - based on complex analytical algorithms - where that story is likely to go next, and when. We can then advise our clients on the most effective pre-emptive steps to take.&lt;br /&gt;&lt;/blockquote&gt;Whether these claims are true or not, an increasing number of services and tools are available to keep track of what people are saying about you. This is definitely a space to watch.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3205647243905371110?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3205647243905371110/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3205647243905371110' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3205647243905371110'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3205647243905371110'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/pr-surgery-disasters-it-seems-that.html' title=''/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1405099197401610701</id><published>2007-07-06T10:37:00.000+01:00</published><updated>2007-07-06T11:05:53.556+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='application architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='software pairs'/><title type='text'></title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Software Pairs&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;In my &lt;a href="http://enhyper.blogspot.com/2007/07/anonymous-applications-this-paper-was.html"&gt;anonymous applications&lt;/a&gt; post, I talked about an idea for a web service marketplace delineated by several criteria, such as cost, reliability, performance etc. Consumers could chose a service based on their particular preference, or regulatory obligation for that matter, and return to the marketplace in realtime should a chosen service provider fail to deliver the required service level, decrementing the service's reputation in the process.&lt;br /&gt;&lt;br /&gt;Service providers would range from the high profile corporation to the reclaimed linux box powered by a solar panel in Africa (anyone can download the jdk and learn to program). Investment banks may be forced by the regulators to only source from high reputational providers in production. In dev, you can source from whoever you like.&lt;br /&gt;&lt;br /&gt;So this service analogue applied at a macro level leads the notion of software analogues e.g Oracle and mySQL, Data Synapse and [Hadoop|ICE]. Slightly more (IB) user friendly is the notion of &lt;span style="font-weight: bold;"&gt;Software Pairs &lt;/span&gt;as in the stock/currency analogue of being different sectors, our delineator is Commercial vs Open Source. It mght be useful to code this up one day - a kind of del.icio.us for applications - whereby the dev community categorise which pattern is exemplified by a particular type of software.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/3778948-1405099197401610701?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1405099197401610701/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1405099197401610701' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1405099197401610701'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1405099197401610701'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/software-pairs-in-my-anonymous.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6503783215422668046</id><published>2007-07-04T23:40:00.000+01:00</published><updated>2007-07-06T11:06:47.480+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><title type='text'></title><content type='html'>&lt;h3  style="color: rgb(204, 102, 0); font-weight: bold; font-family: arial;font-family:arial;" class="title"&gt;&lt;span style="font-size:130%;"&gt;ARMISTICE: Real-time Distributed Risk Management&lt;/span&gt;&lt;/h3&gt;&lt;span style="font-family:arial;font-size:100%;"&gt;In this paper, some experiences of using the concurrent functional language Erlang to implement a classical vertical application, a risk management information system, are presented. Due to the complex nature of the business logic and the interactions involved in the client/server architecture deployed, traditional development techniques are unsatisfactory. First, the nature of the problem suggests an iterative design approach. The use of abstractions (functional patterns) and compositionality (both functional and concurrent composition) have been key factors to reduce the amount of time spent adapting the system to changes in requirements. Despite our initial concerns, the gap between classical software engineering and the functional programming paradigm has been successfully fullfiled.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6503783215422668046?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6503783215422668046/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6503783215422668046' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6503783215422668046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6503783215422668046'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/armistice-real-time-distributed-risk.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5339473173482000673</id><published>2007-07-04T08:55:00.001+01:00</published><updated>2008-05-07T15:40:57.382+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='open source funding model'/><category scheme='http://www.blogger.com/atom/ns#' term='web services'/><category scheme='http://www.blogger.com/atom/ns#' term='security'/><title type='text'>Anonymous Applications</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;This paper was written around 2000 and submitted as an abstract to the Financial Cryptography (FC) Conference in Anguilla. It was, unfortunately, not accepted as it was too far removed from the core focus of the conference, i.e. cryptography and has sat gathering dust ever since. It was inspired by a variety of influences, however, it was substantially affected by the rantings of Robert Hettinga et al who formed the FC community all of to whom I owe a debt gratitude for a sound education in applied crypto. I'm in the process of updating it so welcome comments and collaboration.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;p class="MsoNormal"&gt;&lt;span style="color: rgb(204, 102, 0);font-size:100%;" &gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Abstract&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style="font-family:Arial;"&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:Arial;font-size:14;"  &gt;&lt;span style="font-size:100%;"&gt;I present an novel application development paradigm enabling applications to be built from a collection of web services sourced from a community maintained marketplace of open source and commercial web services, consumed via anonymising proxies and remunerated by anonymous, bearer electronic cash.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-size:100%;"&gt; It is proposed to combine the power of community maintained hierarchical web service directories with open source software development to create a marketplace for granular software services.&lt;br /&gt;&lt;br /&gt;These services will be delineated by cost, reputation/quality of service and paid for by a variety mechanisms ranging from pre-arranged contract to microcash payment mechanisms. The community will determine and maintain the directory ontology organically. &lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;The Death of the Desktop Application&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;I&lt;span style="font-size:100%;"&gt;n the late 1990's, there was a focus towards hosted internet applications labelled the Application Service Provider (ASP) model. In 2007, this market is maturing fast and credible enterprise class services (such as &lt;a href="http://www.salesforce.com/"&gt;salesforce.com&lt;/a&gt;) have become popular and ability to fill market niches by configuration as proposed in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#7"&gt;7&lt;/a&gt;] in 1999 has becoming a business reality.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The ASP market has now fragmented and rebranded to &lt;a href="http://en.wikipedia.org/wiki/Web_2"&gt;Web 2.0&lt;/a&gt;, enabled by technologies such as &lt;a href="http://en.wikipedia.org/wiki/AJAX"&gt;AJAX&lt;/a&gt; on the server side and &lt;a href="http://en.wikipedia.org/wiki/Adobe_Flash"&gt;Adobe Flas&lt;/a&gt;&lt;a href="http://en.wikipedia.org/wiki/Adobe_Flash"&gt;h&lt;/a&gt; on the client side.&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:100%;"&gt;Many people struggled to understand the ASP concept, equating it to the days of mainframe bureau computing provided as vertical, single vendor solution. Then, the balance was firmly with desktop applications and thier up-front licensing model with annual maintenance fees. Now, the hosted application model is poised to annihilate the traditional desktop and supplement the licensing model with pay-per-use-per-seat.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;Open Source Business Model&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Open Source community has succeeded in developing high quality, robust and technically innovative software applications quickly. However, no one is quite sure how to turn this phenomonen to commercial advantage and there are several theoretical business models asproposed in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#7"&gt;7&lt;/a&gt;] and &lt;span style="font-size:100%;"&gt;[&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#9"&gt;9&lt;/a&gt;&lt;/span&gt;].&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;As an attempt to fund Open Source development, there also exists several collaborative task markets for development such as Cosource (&lt;a href="file:///C:/Documents%20and%20Settings/Graeme/Local%20Settings/Temp/www.cosource.com"&gt;www.cosource.com&lt;/a&gt;) as proposed in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#5"&gt;5&lt;/a&gt;]. Incentivised expert  markets are also emerging as in . These have failed to attract significant numbers of developers to make them economically viable. In 1999, Cosource had $60,000 dollars of outstanding development and a total of 11 projects completed.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;I propose a transactional model whereby developers can earn realistic incomes by anonymous subscription or micropayment for functionality which they sell to anonymous consumers via a community maintained directory based on the same operational principles used by the Open Directory Project (dmoz.org) and outlined in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#10"&gt;10&lt;/a&gt;].&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Open Directory project presents an excellent example of the "Bazaar" effect as outlined by Raymond [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#11"&gt;11&lt;/a&gt;] whereby the power of the distributed community is harnessed to build a resource beyond the reach of commercial efforts.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;After the initial failure of internet currency pioneers like Digicash et al, fungible micropayment currencies like E-Gold (&lt;a href="file:///C:/Documents%20and%20Settings/Graeme/Local%20Settings/Temp/www.e-gold.com"&gt;www.e-gold.com&lt;/a&gt;) filled the void. We are again seeing a resurrection of micropayment mechanisms from a variety of companies but few offer anonymity. Anonymity of identity is a preferrable as it means you only have to trust the ethics and technology of one organisation rather than many. Combined with persistence of psuedonym and the integrity of a chained blinding architecture detailed in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#4"&gt;4&lt;/a&gt;] and we have a solution which is credible to the internet community.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place&gt;&lt;span style="font-family:Arial;"&gt;Meta&lt;/span&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; service providers are currently setting up content peering and rebranding functionality to leverage their content delivery infrastructure as outlined in [&lt;a href="http://www.blogger.com/post-edit.g?blogID=3778948&amp;amp;postID=5339473173482000673#3"&gt;3&lt;/a&gt;]. It is these providers who we perceive as adapting to carry application service components.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Real time bandwidth bandwidth exchanges&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;ADSL's influence&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Possible applications&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;    Military Uses&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;    Data Security&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;    Information Assurance&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;    Commercial Uses&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="Blockquote"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The future&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Anonymous Applications Overview&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The ability to deliver applications composed of discrete components exists today. By combining the benefits of Open Source development, global community-maintained directories persistent psuedonyms, anonymous payment mechanisms and  dynamic bandwidth acquisition we predict a new market place for applications&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;The Developer&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Developers sit at home and write applicationette's/components/applets whatever. They host these on their own hardware connected permanently to the internet via adsl. They sell services these on the open marketplace for ecash and have adaptive pricing algorithms to ensure that the things earn money. They use persisten nyms to hide their identity (for a variety of reasons). &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;The Consumer&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Consumers have a front end application designer tool which allows them to pick services and design web applications using compoents/services which&lt;br /&gt;are found by reading a global directory (see below). They also have the choice to route this content over an anonymising infrastructure (like zeroknowledge). It also would allow the user to pay for these services via subscription or per use and to control quality of service requirements, persistence and alternatives. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;The directory&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;At the heart of the system is a global directory (much like dmoz.org) where vendors advertise their wares (in human readable format). This is important because it is a mechanism whereby consumers can request new functionality/classes of application to be written. The directory&lt;br /&gt;is heirarchal and organic: cooperatively managed by the developer/consumers/intermediaries. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;The intermediary&lt;/span&gt; &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;I see a strong market for intermediaries here to provide: &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;    - dynamic bandwidth management - using things like rateXchange to dynamically purchasing bandwidth&lt;br /&gt;- rebranding services&lt;br /&gt;- consumer application hosting&lt;br /&gt;- fan-in/concentration services for service suppliers - not everyone is going to have/desire services running on their home hardware.&lt;br /&gt;- biling/credit control&lt;br /&gt;- quality of service&lt;br /&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Potential Customers &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;This has obvious use for the military who are increasingly being driven to use commercial static and wireless networks.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;/span&gt; &lt;p class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Persistent Psuedonyms&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p class="MsoNormal"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Anonymous identities have been widely used on the internet for both good and bad purposes. The biggest drawback is that it's not easy to communicate bidirectionally. Initial efforts were pioneered by the mixmaster remailers &lt;span style="color:red;"&gt;[Bacard] &lt;/span&gt;&lt;span style="color:black;"&gt;but there are vulnerabilities[Cottrel] which could be used to track messages to their originator. In answer to this problem, the Zero Knowledge Systems  offered a robust anonymising &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;service based on the work of Dr Stefan Brands, however, due to the issues post 9/11, the demand for this service disappeared overnight, leaving the door wide open for identity theft.&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt; &lt;/p&gt;&lt;p class="MsoNormal" style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Open Source Component Providers&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Cooperative Web-based Services Using XML&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;Conclusions&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="margin-left: 18pt;"&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The main use of XML is as a vendor, platform and application independent data format that will be used to connect autonomous, heterogeneous applications. Building on this XML will enable a technology shift in computing whereby personalised business solutions will be constructed dynamically from distributed, cooperative applications (services) hosted by different classes organisations. XML will be successful in this area, where other technologies have failed, due to its simplicity, the fact that it has been designed from the outset for use on the Web, and most importantly, because it has across the board industry backing.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;span style="font-size:100%;"&gt;&lt;b style=""&gt;&lt;span style="font-family:Arial;"&gt;References&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM1"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;1.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Bacard, A. Anonymous Remailer FAQ, Feb, 2000. &lt;a href="http://www.andrebacard.com/remail.html"&gt;http://www.andrebacard.com/remail.html&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM2"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;2.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Cottrel, L.Mixmaster &amp;amp; Remailer Attacks, Feb, 2000. &lt;a href="http://www.obscura.com/%7Eloki/remailer-essay.html"&gt;http://www.obscura.com/~loki/remailer-essay.html&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM3"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;3.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Dyson, E. Zero Knowledge: It's freedom, baby!, Release 1.0, 12-99,15th December 1999.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM4"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;4.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Freedom Network 1.0 Architecture, I. Goldberg, A. Shostack,  Zero-Knowledge Systems, Inc.,&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:date year="1999" day="29" month="11"&gt;&lt;span style="font-family:Arial;"&gt;29th November 1999&lt;/span&gt;&lt;/st1:date&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;. &lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM5"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;5.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Using Electronic Markets to Achieve Efficient Task Distribution, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place&gt;&lt;span style="font-family:Arial;"&gt;I.&lt;/span&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; Grigg, C. Petro, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:date year="1997" day="28" month="2"&gt;&lt;span style="font-family:Arial;"&gt;28th February 1997&lt;/span&gt;&lt;/st1:date&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;. &lt;a href="http://www.systemics.com/docs/papers/task_market.html"&gt;http://www.systemics.com/docs/papers/task_market.html&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM6"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;6.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Role of XML in Enabling Business Solutions Built from Collaborative Web-Based Services, G. Burnett, M. Papiani, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:date year="1999" day="16" month="12"&gt;&lt;span style="font-family:Arial;"&gt;16th December 1999&lt;/span&gt;&lt;/st1:date&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;.&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM7"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;7.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Power of Openness, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:place&gt;&lt;st1:placename&gt;&lt;span style="font-family:Arial;"&gt;Berkman&lt;/span&gt;&lt;/st1:placename&gt;&lt;span style="font-family:Arial;"&gt; &lt;/span&gt;&lt;st1:placetype&gt;&lt;span style="font-family:Arial;"&gt;Center&lt;/span&gt;&lt;/st1:placetype&gt;&lt;/st1:place&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt; for Internet and Society, various, 1999.&lt;a href="http://opencode.org/h20/"&gt;http://opencode.org/h20/&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM8"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM9"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;9.&lt;span style=""&gt;      &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Magic Cauldron, E. Raymond, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:date year="1999" day="24" month="6"&gt;&lt;span style="font-family:Arial;"&gt;24th June 1999&lt;/span&gt;&lt;/st1:date&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;. &lt;a href="http://www.tuxedo.org/%7Eesr/writings/magic-cauldron/"&gt;http://www.tuxedo.org/~esr/writings/magic-cauldron/&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM10"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;10.&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Linux meets Yahoo!, D. Pink, The Fast Company, 2000. &lt;a href="http://www.fastcompany.com/career/pink/0100b.html"&gt;http://www.fastcompany.com/career/pink/0100b.html&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left: 36pt; text-indent: -18pt;"&gt;&lt;span style="font-size:100%;"&gt;&lt;a name="BM11"&gt;&lt;/a&gt;&lt;/span&gt;&lt;!--[if !supportLists]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;&lt;span style=""&gt;11.&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;The Cathedral and the Bazaar, E. Raymond, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;st1:date year="1999" day="26" month="10"&gt;&lt;span style="font-family:Arial;"&gt;26th October,  1999&lt;/span&gt;&lt;/st1:date&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;. &lt;a href="http://www.tuxedo.org/%7Eesr/writings/cathedral-bazaar/"&gt;http://www.tuxedo.org/~esr/writings/cathedral-bazaar/&lt;/a&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:arial;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5339473173482000673?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5339473173482000673/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5339473173482000673' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5339473173482000673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5339473173482000673'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/anonymous-applications-this-paper-was.html' title='Anonymous Applications'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6034399450124970335</id><published>2007-07-04T08:19:00.000+01:00</published><updated>2007-07-04T14:52:37.990+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='shell programming'/><category scheme='http://www.blogger.com/atom/ns#' term='production grade'/><category scheme='http://www.blogger.com/atom/ns#' term='fame'/><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0); font-family: arial; font-weight: bold;font-size:130%;" &gt;Code: Productionisation of FAME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:100%;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One of the first questions I ask when interviewing developers is "How many systems have you put into production?". There's a big difference between writing a system and productionising a system; perhaps that's why I'm so fascinated by logging (probably the dullest subject on the planet) as a mechanism for forensically diagnosing production problems and, potentially, a mechanism for measuring application service level, latency and security events - but that's for another post or two.&lt;br /&gt;&lt;br /&gt;Here's some real production code from a long long time ago written for a bank that no longer exists:&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;    &lt;a href="http://enhyper.com/svn/src/fame/fmUtilLib"&gt;http://enhyper.com/svn/src/fame/fmUtilLib&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;It's the maintenance script for a production installation of FAME and it has some interesting hooks and shell programming techniques.  There's an example of the use of a Zeller function, the algorithm I pinched from Joe Celko's SQL for Smarties book and turned it into a bc(1) function - which I think is pretty neat. There's also a hook into a command line call to a program which generated an snmp trap to alert support in case of error.&lt;br /&gt;&lt;br /&gt;IMHO all production support scripts should be written in straightforward bourne shell, just like the operating system scripts - there's a good reason scripts are written in the lowest common demoninator. In the old days, disk space was limited and fancy shells were not standard installations. Same for editors - emacs had an amusing nickname back then - "Eight Megs And Continually Swaps" - back in the days when 32MB of memory was a big deal.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6034399450124970335?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6034399450124970335/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6034399450124970335' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6034399450124970335'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6034399450124970335'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/07/code-productionisation-of-fame-one-of.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6385796287397479931</id><published>2007-06-28T13:39:00.001+01:00</published><updated>2008-05-15T15:39:22.527+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='patterns'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='hierarchy'/><category scheme='http://www.blogger.com/atom/ns#' term='tuples'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='security architecture'/><title type='text'>Logging Sins, Hierarchical Tuples and Effective Security Architecture</title><content type='html'>&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-family:arial;"&gt;Logging Sins, Hierarchical Tuples and Effective Security Architecture&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;There are many sins in logging, none so amusing than this one I saw recently:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    +++ ALERT : SEVERE : Invalid Market Order Submission ... Hence, releasing the Trader Order in Panic... +++ALERT : SEVERE+++&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;In the old days, we used to return a number which was then looked  up in a decode table. This lead to obscure code and errors which were quite severe when the DBA messed up the decode table...&lt;br /&gt;&lt;br /&gt;However, as an aid to debugging, self-describing code can be useful. So if you're tempted, try tuples - they're quite neat. They're a feature of functional languages, in particular Haskell. Here are some real examples:&lt;br /&gt;&lt;br /&gt;  TIB.SEND.TOALGO.AMENDTRADERORDER&lt;br /&gt;     TIB.SEND.TOALGO.ORDER.CANCEL&lt;br /&gt;     LBM.CALLBACK.INVOKE&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-size:100%;" &gt;&lt;span style="font-family:arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;        LBM.CALLBACK.RETURN&lt;br /&gt;&lt;br /&gt;Without commentary, you can deduce what's happening with this code and these messages. Tuples are cool. They can also be used to describe design patterns. I wrote a paper a while back which I presented at the &lt;a href="http://www.informationsecuritysolutions.com/WebMenuPages/IISYG%20Presentations"&gt;IISyG&lt;/a&gt; on Security Architecture Patterns - I'll post the deck soon on the enhyper subversion server. I took an idea from the Antipatterns book on naming of "antipatterns" and crystallised the methodology to this tuple for describing a pattern:&lt;br /&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt;{GENERAL, LESS GENERAL, SPECIFIC, MORE SPECIFIC}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Applied to the concept of security, this tuple looks like this:&lt;br /&gt;&lt;br /&gt;&lt;div shape="_x0000_s1026" class="O" style=""&gt;&lt;span style=""&gt;    &lt;span style="font-weight: bold;"&gt;&lt;span style="font-family:arial;"&gt;    Generic Security Concept.Application Context.Application Instance.Configuration&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;So I came  up with patterns which looked like this:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    DataTransfer.BBCP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    SecrecyJurisdiction.Authentication.SSH.PasswordlessCertificate&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Authentication.Applicaiton.JavaClient.OracleOID&lt;/span&gt;&lt;br /&gt;&lt;div shape="_x0000_s1026" class="O1" style=""&gt;&lt;div style=""&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=""&gt;&lt;b&gt; &lt;/b&gt;&lt;/span&gt;&lt;/div&gt;  &lt;/div&gt;  Now the beauty of this scheme is that people are lead to logically to the comprehension of the solution by hierarchical decomposition. Add the ability to have arbitrary tuple lengths and encourage stereotypes and you now have well known patterns which you can back by implementations. Now here's the killer part - get security risk to certify/risk assess the implementation so you now have effective security in a risk compliant manner.&lt;br /&gt;&lt;br /&gt;Unfortunately, this bright idea foundered for two reason - banks are here to make money, not develop software and security risk guys found it difficult to think like developers.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6385796287397479931?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6385796287397479931/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6385796287397479931' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6385796287397479931'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6385796287397479931'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/logging-sins-and-hierachical-tuples.html' title='Logging Sins, Hierarchical Tuples and Effective Security Architecture'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-6329416033939782146</id><published>2007-06-26T10:31:00.000+01:00</published><updated>2007-06-27T14:26:27.382+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='disk performance analysis'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Local Disk Hotspot Analysis&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;One common mistake I see is NFS/Samba mounted partitions use to either stage data into memory or to write application log files to. There's no real excuse for this, and the argument that local storage is not allowed by intrastructure engineering policy is one which I easily argued against at a tier 1. We wanted about half a gig of file systems space to store logs and model data which could be loaded quickly in the event of a system or application crash. We were told that this was not allowed under any circumstances as it was against policy.&lt;br /&gt;&lt;br /&gt;The issue we had was quite simple - on our Solaris box, restarting the application took 2 hours, pulling the data from an an ancient disk array with really poor service times and some config stuff NFS mounted partition. When we moved to Linux and used our local home dir to stage the models and store the logs, this went to 15 mins - an acceptable restart time for the business. So I arranged a meeting with the Head of Unix Infrastructure and told him that he needed to explain to the business why they couldn't trade for one and three quarter hours in the event of a system failure. For some reason he changed his mind and we managed  to get two fast SATA II hard drives in addition to the two OS drives.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;JBOD Arrays&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you are using a JBOD array with some form of disk suite management, frequently there's several performance problems that go unnoticed and unchecked - hardly surprising knowing the extreme workloads of some to the sys admins I've worked with. This leaves them no time to be proactive.&lt;br /&gt;&lt;br /&gt;The first is what I call disk hot-spotting - where a bunch of disks are idle yet one is maxed due to poor partitioning. To analyse this, I wrote &lt;a href="http://enhyper.com/svn/src/bin/diskanalyse"&gt;diskanalyse&lt;/a&gt; which aggregates sar output to highlight possible issue. Here's an example of two disks which just so happen to be the OS disks. It shows that there's a poor average service of 17ms per operation. Now that's going to slow things down. The cure here is quite simple - there's too much activity in /tmp - get the applicaiton guys to move it to a partition local to the application and the problem will be lessened.&lt;br /&gt;&lt;br /&gt;avserv[ sd1,h ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;avserv[ sd0 ] = 17&lt;/span&gt;&lt;br /&gt;avserv[ sd320 ] = 2&lt;br /&gt;avserv[ sd30 ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;avserv[ sd1 ] = 17&lt;/span&gt;&lt;br /&gt;avserv[ sd330 ] = 0&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;busy[ sd0 ] = 28&lt;/span&gt;&lt;br /&gt;busy[ sd320 ] = 0&lt;br /&gt;busy[ sd230 ] = 0&lt;br /&gt;busy[ sd203 ] = 0&lt;br /&gt;busy[ sd30 ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;busy[ sd1 ] = 29&lt;br /&gt;&lt;br /&gt;rwpersec[ sd0 ] = 57&lt;br /&gt;&lt;/span&gt;rwpersec[ sd320 ] = 1&lt;br /&gt;rwpersec[ sd230 ] = 0&lt;br /&gt;rwpersec[ sd203 ] = 0&lt;br /&gt;rwpersec[ sd30 ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;rwpersec[ sd1 ] = 57&lt;br /&gt;&lt;br /&gt;blkpersec[ sd0 ] = 920&lt;br /&gt;&lt;/span&gt;blkpersec[ sd320 ] = 10&lt;br /&gt;blkpersec[ sd230 ] = 0&lt;br /&gt;blkpersec[ sd203 ] = 0&lt;br /&gt;blkpersec[ sd30 ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;blkpersec[ sd1 ] = 909&lt;br /&gt;&lt;br /&gt;avwait[ sd0 ] = 7&lt;br /&gt;&lt;/span&gt;avwait[ sd320 ] = 0&lt;br /&gt;avwait[ sd230 ] = 0&lt;br /&gt;avwait[ sd203 ] = 0&lt;br /&gt;avwait[ sd30 ] = 0&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;avwait[ sd1 ] = 7&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-6329416033939782146?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/6329416033939782146/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=6329416033939782146' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6329416033939782146'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/6329416033939782146'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/local-disk-hotspot-analysis-one-common.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3650022509029203164</id><published>2007-06-25T23:14:00.000+01:00</published><updated>2007-06-27T14:26:39.310+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek food'/><category scheme='http://www.blogger.com/atom/ns#' term='parathas'/><title type='text'></title><content type='html'>&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0); font-family: arial;"&gt;Ajowan ke paratha&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;Time for more geek food. Parathas are very much under appreciated in Asian cuisine that's presented to the restaurant going public - you'd be hard pressed to get a fresh paratha anywhere I've eaten.&lt;br /&gt;&lt;br /&gt;This recipe comes from an book I picked up at a jumble sale:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Lot 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8oz wholewheat flour&lt;br /&gt;2 tsp Ajowan seeds&lt;br /&gt;3/4 tsp salt&lt;br /&gt;1/2 tsp chilli powder&lt;br /&gt;7 fl oz water&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;&lt;br /&gt;Lot 2&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family: arial;font-size:85%;" &gt;&lt;br /&gt;&lt;br /&gt;3 tbsp melted ghee&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial; font-weight: bold;"&gt;Method&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Mix lot 1 in a bowl to a dough, kneading well. Leave for 15 mins for the dough to rest.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Divide into 8 - 10 lumps&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Loop&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;On a floured surface, roll out each ball into an oblong, 3 inches by 6-8 inches&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Paint top surface with some of Lot 2&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Fold one third of the length into the middle, fold the other third onto this&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Repeat loop three times&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Roll out to desired size (3-4 x 6-8 inches ideally)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial;"&gt;Cook&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial; font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(204, 0, 0); font-family: arial; font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;"&gt;Cook in a dry frying pan until surface bubbles and turns slightly opaque ( no ghee)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;"&gt;Paint surface with some of Lot 2&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;"&gt;turn over and cook for a minute or so and repeat on other side&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;"&gt;Eat with any curry or dall.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0); font-family: arial;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-3650022509029203164?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3650022509029203164/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3650022509029203164' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3650022509029203164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3650022509029203164'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/ajowan-ke-paratha-time-for-more-geek.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5375595793793957896</id><published>2007-06-20T15:49:00.000+01:00</published><updated>2007-06-22T09:15:45.768+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='HFF'/><category scheme='http://www.blogger.com/atom/ns#' term='geek beer'/><title type='text'></title><content type='html'>&lt;p&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  lang="EN-US" &gt;&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;Beer in the Evening - Intel Fastercity Event&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  lang="EN-US" &gt;Intel are hosting a freebie beer in the evening event. Looks like it will be fun - I plan to attend.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Nigel Woodward of Intel writes:&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  lang="EN-US" &gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  lang="EN-US" &gt;A quick reminder about the FasterCity community event featuring:&lt;wbr&gt; industry panel, discussion and Chief Wine Officer™ reception &lt;span style="color:black;"&gt;&lt;span style="color:black;"&gt;on the &lt;b&gt;&lt;span style="font-weight: bold;"&gt;2&lt;sup&gt;nd&lt;/sup&gt; of July 2007&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;, registrations begin at 5pm after which the conference is set to commence at &lt;b&gt;&lt;span style="font-weight: bold;"&gt;5.30pm&lt;/span&gt;&lt;/b&gt; – the venue is &lt;strong&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;&lt;span style="font-family:Verdana;"&gt;Savoy Place WC2R&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt; &lt;b&gt;&lt;span style="font-weight: bold;"&gt;0BL.&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  lang="EN-US" &gt;The many bottles of excellent fine wine are waiting to be tasted, and the chef has prepared a canapé menu specifically to complement the wine.  Peter McCombie will host the event (&lt;span style="color:blue;"&gt;&lt;span style="color:blue;"&gt;&lt;a href="http://www.petermccombie.com/" title="http://www.petermccombie.com/" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;www.petermccombie.com&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;) and you will hopefully leave entertained, educated and possibly with a prize or award.&lt;/span&gt;&lt;/span&gt;&lt;span lang="EN-US"&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:Verdana;font-size:85%;"  &gt;&lt;span style=";font-family:Verdana;font-size:10;"  &gt;I look forward to meeting you on the night.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:78%;color:gray;"   &gt;&lt;span style=";font-family:Verdana;font-size:7;color:gray;"   &gt;Nigel Woodward&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;b&gt;&lt;span style=";font-family:Verdana;font-size:78%;color:gray;"   &gt;&lt;span style=";font-family:Verdana;font-size:7;color:gray;"   &gt;Head of Financial Services &lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;/strong&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Verdana;font-size:78%;color:gray;"   &gt;&lt;span style=";font-family:Verdana;font-size:7;color:gray;"   &gt;Intel Corporation&lt;/span&gt;&lt;/span&gt;&lt;span style="color:gray;"&gt;&lt;span style="color:gray;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;&lt;span style=";font-family:Verdana;font-size:78%;color:gray;"   &gt;&lt;span style=";font-family:Verdana;font-size:7;color:gray;"   &gt;Dir: 020 7614 8600&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;span style=";font-family:Verdana;font-size:78%;color:gray;"   &gt;&lt;span style=";font-family:Verdana;font-size:7;color:gray;"   &gt;Web:&lt;a href="http://www.intelfasterfs.com/fastertrading" title="blocked::http://www.intelfasterfs.com/fastertrading" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;span title="blocked::http://www.intelfasterfs.com/fastertrading"  style="color:gray;"&gt;&lt;span title="blocked::http://www.intelfasterfs.com/fastertrading"&gt;&lt;span style="color:gray;"&gt;www.intelfasterfs.com/fastertra&lt;wbr&gt;ding&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&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/3778948-5375595793793957896?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5375595793793957896/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5375595793793957896' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5375595793793957896'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5375595793793957896'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/beer-in-evening-intel-fastercity-event.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4844088270913011417</id><published>2007-06-20T08:30:00.000+01:00</published><updated>2007-06-20T15:29:15.434+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='algorithmics'/><category scheme='http://www.blogger.com/atom/ns#' term='development'/><category scheme='http://www.blogger.com/atom/ns#' term='genetic algorithms'/><category scheme='http://www.blogger.com/atom/ns#' term='coding'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;A Lesson in Simplification: Heuristic methods, Genetic Algos and NP Complete Problems&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It's rare to find an intriguing and difficult task in investment banking - mostly our work involves straight forward computational work. I was asked to write a program for a guy who was manually sorting spreadsheets which contained totals of net asset values for exchange traded funds from Reuters. He was trying to find out which flags had been used by Reuters to calculate the total.&lt;br /&gt;&lt;br /&gt;My initial reaction was that this would be a simple iterative algorithm which would be easy to implement. After consulting two quantitative analysts I know, I was informed that I'd come across the &lt;a href="http://en.wikipedia.org/wiki/Postage_stamp_problem"&gt;Postage Stamp problem&lt;/a&gt; (a.k.a. the Money Changing problem) which could only be solved using a brute force approach. Technically, the problem is &lt;a href="http://en.wikipedia.org/wiki/NP-complete"&gt;N-P Complete&lt;/a&gt;. There was no known algorithm for this so he suggested I go through all the subsets as outlined in this article on &lt;a href="http://www2.toki.or.id/book/AlgDesignManual/BOOK/BOOK4/NODE153.HTM"&gt;Generating Partitions&lt;/a&gt;. At this point I felt like giving up but I persevered, and read some interesting articles which related the problem to Frobenious so I found some &lt;a href="http://www.math.columbia.edu/%7Edejong/algebraic_geometry/Frobenius/"&gt;code which implements this&lt;/a&gt; though didnt get particulary far with this as it produced a (to me at least) meaningless series of numbers. I did find this &lt;a href="http://demonstrations.wolfram.com/McNuggetProblemAndFrobeniusNumbers/"&gt;McNuggets Problem&lt;/a&gt; analogy from Wolfram useful in explaining the problem in Joe six-pack terms. I also found a candidate algorithm which looked good for the job - &lt;a href="http://www.geocities.com/SiliconValley/Garage/3323/aat/a_diop.html#diophant"&gt;The Diophantine Linear Equation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;A young turk here, Darryl Stein, was itching to help so we both worked on candidate solutions. He adopted a &lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;GA approach based on a C# GA library from those lovely people at Google - &lt;a href="http://code.google.com/p/aforge/"&gt;Aforge.NET&lt;/a&gt; - this was efficient and reasonably accurate on the data we had - but being c# - it couldnt' work on the unix platform so was not really feasible as this had to be done server side (the data was coming out of Vhayu).&lt;br /&gt;&lt;br /&gt;So we ended up coding a version of the Diophantine equation which did pretty much what the guy was doing with the spreadsheet - ie - starting with the biggest number, then the next until the limit was breached then sieving through the permutations until you get a hit or not. Darryl beat me to it with a neatly coded recursive solution which did the job.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-family:arial;" &gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4844088270913011417?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4844088270913011417/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4844088270913011417' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4844088270913011417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4844088270913011417'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/lesson-in-simplification-heuristic.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-1099210986879674323</id><published>2007-06-19T10:42:00.000+01:00</published><updated>2007-06-20T15:24:50.103+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='HFF'/><category scheme='http://www.blogger.com/atom/ns#' term='electronic trading'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold; color: rgb(204, 102, 0);font-size:130%;" &gt;LSE Electronic Trading&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;The &lt;a href="http://online.wsj.com/article/SB118221001351039774.html?mod=home_whats_news_europe"&gt;Wall Street Journal Europe&lt;/a&gt; is reporting that the LSE has unveiled a new electronic trading system that will allow a trade to be booked and confirmed within 10ms, 130ms faster than previously.&lt;br /&gt;&lt;/span&gt;&lt;blockquote&gt;&lt;span style="font-size:100%;"&gt;The London Stock Exchange on Monday unveiled a new electronic-trading platform, TradElect, which promises to trade a share in 10 milliseconds -- 30 times faster than the blink of an eye and a speed that could help decide the fate of Europe's biggest exchange by market capitalisation of its listed companies.&lt;br /&gt;&lt;br /&gt;The system cuts the time from placing an order to final confirmation to an average of 10 milliseconds from 140 milliseconds. It can handle 3,000 orders a second, up from 600 under the LSE's old system, known as SETS, a number the LSE said it has approached on several occasions in recent months.&lt;br /&gt;&lt;br /&gt;By comparison, it takes 110 milliseconds for a trade to make its way through the main trading platform of NYSE Euronext's New York Stock Exchange. The Big Board intends to cut that to 10 milliseconds.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;&lt;span style="font-size:100%;"&gt;Another way of putting this is that someone can make 11 trades on the LSE while you are waiting for your NYSE transaction to complete.&lt;br /&gt;&lt;br /&gt;How much XML can you process in 10ms?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-1099210986879674323?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/1099210986879674323/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=1099210986879674323' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1099210986879674323'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/1099210986879674323'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/lse-electronic-trading-wall-street.html' title=''/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4093823256964214226</id><published>2007-06-17T13:48:00.001+01:00</published><updated>2008-05-19T10:47:36.585+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ASN.1'/><category scheme='http://www.blogger.com/atom/ns#' term='xml'/><title type='text'>XML versus ASN.1</title><content type='html'>I don't know how widely the ASN.1 Packed Encoding Rules (PER) are used but here's an example of how much more verbose XML can be than PER.&lt;br /&gt;&lt;br /&gt;Here's a simple ASN.1 definition:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;FooBaz {1 2 0 0 6 3} DEFINITIONS ::=&lt;br /&gt; BEGIN&lt;br /&gt;    T1 ::= INTEGER (25..30)&lt;br /&gt;&lt;br /&gt;    Test1 ::=&lt;br /&gt;       SEQUENCE {&lt;br /&gt;          first  T1,&lt;br /&gt;          second T1&lt;br /&gt;       }&lt;br /&gt;  &lt;br /&gt;    Test2 ::=&lt;br /&gt;       SEQUENCE {&lt;br /&gt;          first2  [0] T1 OPTIONAL,&lt;br /&gt;          second2 [1] T1 OPTIONAL&lt;br /&gt;       }&lt;br /&gt;  &lt;br /&gt;    Integer11 ::= INTEGER (0..32000)    &lt;br /&gt;  &lt;br /&gt;    Test3 ::=&lt;br /&gt;       SEQUENCE {&lt;br /&gt;          first  T1,&lt;br /&gt;          second T1,&lt;br /&gt;          third Integer11,&lt;br /&gt;          fourth Integer11&lt;br /&gt;       }&lt;br /&gt; END&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here's an encoding using XML:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;Test3&amp;gt;&lt;br /&gt;   &amp;lt;first&amp;gt;29&amp;lt;/first&amp;gt;&lt;br /&gt;   &amp;lt;second&amp;gt;30&amp;lt;/second&amp;gt;&lt;br /&gt;   &amp;lt;third&amp;gt;63&amp;lt;/third&amp;gt;&lt;br /&gt;   &amp;lt;fourth&amp;gt;31000&amp;lt;/fourth&amp;gt;&lt;br /&gt;&amp;lt;/Test3&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Here's the PER. Note that it fits into 36 bits so the last 12 are irrelevant.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;9401 ff91 8000&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;I make that 36 bits for PER and 112*8 = 896 bits for XML, a ratio of 1:25.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4093823256964214226?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4093823256964214226/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4093823256964214226' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4093823256964214226'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4093823256964214226'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/i-dont-know-how-widely-asn.html' title='XML versus ASN.1'/><author><name>cinimod</name><uri>http://www.blogger.com/profile/07302956852946739194</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-5907264897959166127</id><published>2007-06-16T12:29:00.000+01:00</published><updated>2007-06-27T14:27:10.089+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdf5'/><category scheme='http://www.blogger.com/atom/ns#' term='data architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='data parallelism'/><category scheme='http://www.blogger.com/atom/ns#' term='HFF'/><category scheme='http://www.blogger.com/atom/ns#' term='news analysis'/><title type='text'></title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold; color: rgb(204, 102, 0);"&gt;Mining Massive Data Sets for Security&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.semiophore.net/"&gt;Semiophore&lt;/a&gt; points me to the forthcoming &lt;a href="http://mmdss.jrc.it/"&gt;two week workshop&lt;/a&gt; on the above to be held in mid-September 2007 in Italy.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;"It is the purpose of this workshop to review the various technologies available (data mining algorithms,      social networks, crawling and indexing, text-mining, search engines, data streams) in the context of very large data sets."&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;I'd love to attend as this is an area I think is crucial for High Frequency Finance. Whilst working on a high performance trade order router for a tier 1, I did some research which I was allowed to present publicly at the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.fiteclub.org/"&gt;Fiteclub&lt;/a&gt;&lt;span style="font-style: italic;font-family:arial;" &gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;, a forum which meets occasionally in London. I presented two papers of note - &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.com/svn/docs/decks/HDF5V2.pps"&gt;Financial Data Infrastructure with HDF5&lt;/a&gt;&lt;span style="font-family:arial;"&gt; which concentrated on high performance data delivery and analysis. In this presentation I proposed a machine which could be built for around $25K that could eat 20TB of data in 90 minutes - using COTS components. This was inspired by the seminal article on disk technology amusingly entitled "&lt;/span&gt;&lt;a style="font-family: arial;" href="http://www.acmqueue.org/modules.php?name=Content&amp;pa=showpage&amp;amp;pid=46"&gt;You don't know jack about disks&lt;/a&gt;&lt;span style="font-family:arial;"&gt;" published by the &lt;/span&gt;&lt;a style="font-family: arial;" href="http://acm.org/"&gt;ACM&lt;/a&gt;&lt;span style="font-family:arial;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;The second presentation, also at Fiteclub, was entitled &lt;/span&gt;&lt;a style="font-family: arial;" href="http://enhyper.com/svn/docs/decks/OpenSourceIntelligenceinFinance.pps"&gt;Open Source Intelligence in Finance&lt;/a&gt;&lt;span style="font-family:arial;"&gt; and was inspired by the techniques used in open source intelligence applied to finance. Here I build the case for news analysis applied to program trading.&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-5907264897959166127?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/5907264897959166127/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=5907264897959166127' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5907264897959166127'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/5907264897959166127'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/mining-massive-data-sets-for-security.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4322166526233919139</id><published>2007-06-16T07:05:00.001+01:00</published><updated>2007-06-17T11:04:17.264+01:00</updated><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0);font-size:130%;" &gt;&lt;span style="font-weight: bold;"&gt;The Rise and Rise of Software Patents&lt;/span&gt;&lt;/span&gt;&lt;span xmlns=""&gt;&lt;p&gt;&lt;a href="http://www.cincomsmalltalk.com/blog/blogView?showComments=true&amp;printTitle=Then_and_Now&amp;amp;entry=3358869283"&gt;James Robertson&lt;/a&gt; points to a &lt;a href="http://www.nytimes.com/2007/06/09/opinion/09lee.html?ei=5088&amp;amp;amp;en=22f3d8f9f3cfc921&amp;ex=1339041600&amp;amp;partner=rssnyt&amp;emc=rss&amp;amp;pagewanted=print"&gt;New York Times op-ed piece&lt;/a&gt; by &lt;a href="http://www.cato.org/people/tlee.html"&gt;Timothy Lee&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Microsoft has changed their position on software patents since 1991 – what was different then?&lt;br /&gt;&lt;/p&gt;&lt;p&gt;In 1991 most personal computer users were still using DOS, not &lt;a href="http://en.wikipedia.org/wiki/Windows_3.1"&gt;Windows&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Windows was welcome because it provided a standard way for PC applications to take advantage of RAM over 640K. Applications like &lt;a href="http://en.wikipedia.org/wiki/Lotus_1-2-3"&gt;Lotus&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/WordPerfect"&gt;WordPerfect&lt;/a&gt; required incompatible and unstable high memory drivers (want to use a different app? Edit AUTOEXEC.BAT and reboot. Repeat). While Mac users were able to use Excel and Word without these limitations, the vast majority of PC users were unaware of the advantages of standardised graphical user interfaces, postscript printing or built-in networking. Apple, however, saw Windows as a threat, and had already been &lt;a href="http://en.wikipedia.org/wiki/Apple_Computer%2C_Inc._v._Microsoft_Corp."&gt;litigating against Microsoft for three years&lt;/a&gt; by this time.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;When Bill Gates was stating his concerns about patents held by "some large company", he may have talking about Apple. But the lawsuit was related to copyrights, not patents.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Apple had the tables (briefly) turned on them, when &lt;a href="http://en.wikipedia.org/wiki/Xerox_Corporation"&gt;Xerox&lt;/a&gt; filed suit, also alleging copyright infringement against work they had done on the &lt;a href="http://en.wikipedia.org/wiki/Xerox_Star"&gt;Star&lt;/a&gt;.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;So where were the &lt;a href="http://www.xeroxtechnology.com/ip1.nsf/sedan1?readform&amp;unid=640EDE46D9F9E00085256D1E0065D577"&gt;patents&lt;/a&gt;?&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-left: 36pt;"&gt;Some people feel that Apple, Microsoft, and others plagiarized the &lt;a title="GUI" href="http://en.wikipedia.org/wiki/GUI"&gt;GUI&lt;/a&gt; and other innovations from the Xerox Star, and believe that Xerox didn't properly protect its intellectual property. The truth is a bit more complicated. Many patent disclosures were in fact submitted for the innovations in the Star; however, at the time the 1975 Xerox Consent Decree, an &lt;a title="FTC" href="http://en.wikipedia.org/wiki/FTC"&gt;FTC&lt;/a&gt;&lt;br /&gt;  &lt;a title="Antitrust" href="http://en.wikipedia.org/wiki/Antitrust"&gt;antitrust&lt;/a&gt; action, placed restrictions on what the company was able to &lt;a title="Patent" href="http://en.wikipedia.org/wiki/Patent"&gt;patent&lt;/a&gt;.&lt;a title="" href="http://en.wikipedia.org/wiki/Xerox_Star"&gt;&lt;sup&gt;[4]&lt;/sup&gt;&lt;/a&gt; In addition, when the Star disclosures were being prepared, the Xerox patent attorneys were busy with several other new technologies such as laser printing. Finally, patents on software, particularly those relating to user interfaces, were an untested legal area at that time.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;The law is clearer now, notwithstanding differences between Europe and the US.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Apple wasn't able to patent these things because they didn't invent them.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Xerox wasn't able to patent them because of an &lt;a href="http://www.cato.org/pubs/handbook/hb105-39.html"&gt;antitrust&lt;/a&gt; ruling (and there may be some truth in the fact that the business was oblivious to the incredible work being done at &lt;a href="http://en.wikipedia.org/wiki/Xerox_PARC"&gt;PARC&lt;/a&gt;).&lt;br /&gt;&lt;/p&gt;&lt;p&gt;While I don't like to play the alternative history game (the real thing is confusing enough, thanks), the rise of Microsoft and Apple might have turned out differently had it not been for this ruling.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Investment banks have an interest in software patents for two reasons. First, they have a responsibility to their clients to invest in companies with legally identifiable market advantages. Patents are a big part of that, especially for technology companies. Right or wrong, if you have a technology company and you want someone to invest in your firm, patents can increase your market value.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Second, financial patents are becoming more widespread, and software is a big part of that. Investment banks are actively encouraging their (very large) development teams to work with their legal departments to protect their inventions. Again, right or wrong, this is partly defensive (e.g. if firms have a portfolio of patents they can enter into &lt;a href="http://news.yahoo.com/s/pcworld/20070614/tc_pcworld/132893"&gt;cross-licensing agreements&lt;/a&gt; with potential competitors, or they can use patents to obtain a monopoly on &lt;a href="http://www.freepatentsonline.com/20060136313.html"&gt;innovative business ideas&lt;/a&gt;), and partly opportunistic. It is possible that even banks might find the revenue streams from IP licensing attractive.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;While not everyone is happy about software patents (they increase the cost of doing business, and can act as barriers to new entrants into a market), they can also be useful. They can help to create and sustain advantages for people who are careful and clever enough to spot the opportunities.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Either way, ignoring them is not advisable.&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;span style="font-weight: bold;"&gt;Update: &lt;/span&gt;&lt;a href="http://www.pluto.it/files/meeting1999/atti/no-patents/brevetti/docs/knuth_letter_en.html"&gt;Donald Knuth&lt;/a&gt; on Software Patents&lt;br /&gt;&lt;/p&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-4322166526233919139?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4322166526233919139/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4322166526233919139' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4322166526233919139'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4322166526233919139'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/rise-and-rise-of-software-patents.html' title=''/><author><name>Steve Wart</name><uri>http://www.blogger.com/profile/11504652590059785955</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-151613767084906999</id><published>2007-06-15T08:35:00.000+01:00</published><updated>2007-06-27T14:27:26.587+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='smalltalk'/><category scheme='http://www.blogger.com/atom/ns#' term='cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='financial cryptography'/><category scheme='http://www.blogger.com/atom/ns#' term='enterprise server management'/><title type='text'></title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Functional Programming meets #crypto&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;We met up last night as mentioned in for a &lt;a href="http://enhyper.blogspot.com/2007/05/functional-programming-beer-in-evening.html"&gt;Functional Programming Beer in the Evening event&lt;/a&gt; and had a thoroughly enjoyable evening. Dr Dominic Steinitz, Nigel Stuckey of Systemgarden, Steve Wart and I spent several hours &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; talking about a variety of topics ranging from FP through to Cryptography.&lt;br /&gt;&lt;br /&gt;Nigel, Steve and I met at a tier 1 we all worked for through an internal chat channel I ran on cryptography called #crypto which was a hot bed of financial crypto interest. I had been following the great &lt;a href="http://www.philodox.com/"&gt;Robert Hettinga&lt;/a&gt; and his &lt;a href="http://www.philodox.com/modelpaper.html"&gt;rants&lt;/a&gt; on bearer security and his promotion of FC in general. Through this I met and became friends with &lt;a href="http://iang.org/"&gt;Ian Grigg&lt;/a&gt; who runs the &lt;a href="http://www.financialcryptography.com/"&gt;Financial Cryptography&lt;/a&gt; website which is always worth a read as Ian challenges conventional wisdom and crypto practise from a more business related angle.&lt;br /&gt;&lt;br /&gt;Dominic is an active member of the Haskell community and hopefully will be joining the enhyper blog and contributing his expertise. Dominic wrote the cryptographic functions (sha1, rsa, blowfish etc) in Haskell and maintains the library on one of the Haskell webservers. I'm going to create a subversion respository with public access for Dominic's work to allow the community to contribute to the Haskell crypto effort so watch this space.&lt;br /&gt;&lt;br /&gt;Nigel will also be contributing to the Enhyper blog - his expertise in platform management is world-class, gained through the development of &lt;a href="http://www.systemgarden.com/harvest/index.html"&gt;Harvest&lt;/a&gt; at &lt;a href="http://www.systemgarden.com/"&gt;System Garden&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;We talked in detail about the evolution of specialist languages in Finance, in particular K and Smalltalk. Steve Wart is a smalltalk programmer and outlined a fantastic sounding system he worked on for a &lt;a href="http://www.bchydro.com"&gt;Candadian power company&lt;/a&gt;  so I hope he's going to expand on that here. Dominic and I discussed stream fusion at length and I think I understand it - however, I'm not going to steal his thunder as he promises to write an article on data parallelism. Nigel and Steve had a lively debate on Second Life and discussed the additon of models of ancient buildings as a mechanism for historical education. We finished the evening with a sausage and sauerkraut at &lt;a href="http://www.timeout.com/london/restaurants/reviews/9193.html"&gt;Kurz and Lang&lt;/a&gt; in Smithfield which was reminiscent of Zurich night life.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-151613767084906999?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/151613767084906999/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=151613767084906999' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/151613767084906999'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/151613767084906999'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/functional-programming-meets-crypto-we.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-756226220711031372</id><published>2007-06-15T07:33:00.000+01:00</published><updated>2007-06-20T15:26:45.366+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='hdf5'/><category scheme='http://www.blogger.com/atom/ns#' term='fpga'/><category scheme='http://www.blogger.com/atom/ns#' term='data architecture'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='BGM'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;HPC=Grid+Data+FPGA&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I was kindly invited by Platform Computing to give a presentation at the their European Grid Conference  &lt;a href="http://www.platform.com/pegc06/agenda2.htm"&gt;PGC06&lt;/a&gt; last October. I've just made this deck and others available on the Enhyper subversion share under &lt;a href="http://enhyper.com/svn/docs/decks"&gt;&lt;span style="text-decoration: underline;"&gt;decks&lt;/span&gt;&lt;/a&gt;. You can download  the powerpoint presentation here &lt;a href="http://enhyper.com/svn/docs/decks/HPC=Grid+Data+FPGA.ppt"&gt;HPC=Grid+Data+FPGA&lt;/a&gt;. The abstract for the pitch is below:&lt;br /&gt;&lt;a href="http://enhyper.com/svn/docs/decks"&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;font-family:Arial;font-size:85%;"  &gt;High Frequency Finance demands an infrastructure that can supply large quantities of computational resource plus the delivery of multidimensional, arbitrary precision data to applications at scalable rates, in a platform independent manner.&lt;br /&gt;&lt;br /&gt;Statistical analysis techniques for pricing and risk measurement also require significant algorithmic performance. This is being delivered by multi-core processors, however, the quest for low-latency is driving the emergence of algorithms in silicon using Field Programmable Gate Array techniques.&lt;br /&gt;&lt;br /&gt;The traditional approach to application and data engineering has been client/server glued together with delimited files and relational databases. These technologies are increasingly being surpassed by grid enabled; in-memory applications combined with FPGA based algorithms.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:85%;"  &gt;&lt;span style="font-size:100%;"&gt;This was immediately after some friends at &lt;a href="http://www.celoxica.com/"&gt;Celoxica&lt;/a&gt; had run a trial of BGM in one of the tier 1's - a trial that has since been emulated in academia by Wayne Luk et al as outlined in this paper entitled &lt;a href="http://www.ee.ucla.edu/%7Edongu/pub/papers/fpt05_dul98.pdf"&gt;Reconfigurable Acceleration for Monte Carlo based Financial Simulation&lt;/a&gt;. The problem with academics is that, to quote Dr Duncan Shaw,  "they have 98% of the time but only 2% of the data, whereas it's the reverse for the practitioner". There are better ways of skinning this particular cat which could have significantly improved the performance.&lt;/span&gt;..&lt;/span&gt;&lt;span style="font-style: italic;font-family:Arial;font-size:85%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-756226220711031372?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/756226220711031372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=756226220711031372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/756226220711031372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/756226220711031372'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/hpcgriddatafpga-i-was-kindly-invited-by.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3025718156367663270</id><published>2007-06-13T14:52:00.001+01:00</published><updated>2008-05-19T13:57:54.194+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='data parallelism'/><title type='text'>Time to Embrace New Data Parallel Programming Models?</title><content type='html'>&lt;span style="font-size:85%;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;In "&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-family: arial;" href="http://portal.acm.org/citation.cfm?id=1238844.1238851"&gt;The rise and fall of High Performance Fortran: An Historical Object Lesson&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;" there's a several lessons to be learned but of significant relevance to the development and adoption of Functional Programming Languages in finance was the promise offered by data parallel architectures. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Data parallelism is the ability to run sequences of instructions which are broadcast to processing units in lock-step, on different elements of data in parallel. This was first implemented in hardware in the 1960's and was classifed as SIMD - Single Instruction Multiple Data&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;This is the mechanism is now in implemented in software and part of the &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-family: arial;" href="http://haskell.org/haskellwiki/GHC/Data_Parallel_Haskell"&gt;Glasgow Haskell Compiler&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt; and is explored in detail in the presentation "&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a style="font-family: arial;" href="http://research.microsoft.com/%7Esimonpj/papers/ndp/NdpSlides.pdf"&gt;Nested Data Parallelism in Haskell&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;" where they state that it's the only way to take advantage of 100's of cores and that it can even be run on GPUs. Like Handel-C, Haskell has par and seq statements allowing the programmer to parallelise and sequentialise instructions. They also introduce a new concept called stream fusion which is non-recursive allowing data to be "bused"from one stream to another inline - now I'm not sure I fully understand the implications of this but I'm sure going to find out.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;a href="http://research.microsoft.com/%7Esimonpj/papers/ndp/NdpSlides.pdf" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)"&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&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/3778948-3025718156367663270?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/3025718156367663270/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=3025718156367663270' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3025718156367663270'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/3025718156367663270'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/time-to-embrace-new-data-parallel.html' title='Time to Embrace New Data Parallel Programming Models?'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-7474562110834719738</id><published>2007-06-13T08:32:00.000+01:00</published><updated>2007-06-14T09:48:48.829+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='quantitative analytics'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='HPC'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='HFF'/><title type='text'></title><content type='html'>&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="font-weight: bold;font-family:arial;" &gt;Functional Programming Beer In The Evening Event Redux&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Following our last meet up last week to speak about Functional Programming in the Finance. I'm setting up another beer around Smithfield in London, &lt;span style="font-weight: bold;"&gt;14th June 2007&lt;/span&gt;, with &lt;a href="http://portal.acm.org/citation.cfm?id=644403.644405"&gt;Dominic Steinitz&lt;/a&gt; who has made considerable contribution Functional Programming via his Haskell crypto library and paper on &lt;a href="http://portal.acm.org/citation.cfm?id=644405&amp;dl=&amp;amp;amp;amp;amp;amp;coll=&amp;CFID=15151515&amp;amp;CFTOKEN=6184618"&gt;Trends in Functional Programming&lt;/a&gt;. We'll be talking about Haskell in particular but also about Erlang and its use in service based analytics.&lt;br /&gt;&lt;br /&gt;Following our last meet, Someone sent me a link to a pdf entitled &lt;a href="http://cufp.galois.com/slides/2006/YaronMinsky.pdf"&gt;Caml Trader: Adventures of a Functional Programmer on Wall Street&lt;/a&gt; by Yaron Minsky of Jane Street Capital which confirms the rise of FP in finance. Worth a read.&lt;br /&gt;&lt;br /&gt;So if  you fancy  joining us, we'll be in the &lt;a href="http://fancyapint.com/pubs/pub67.html"&gt;Long Lane Pub in Long Lane near Smithfield&lt;/a&gt; from 6pm onwards. Drop me a note (rgb at enhyper.com) or call my mobile +44 791 505 5 three eight zero.  &lt;/span&gt;&lt;/span&gt;&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/3778948-7474562110834719738?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/7474562110834719738/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=7474562110834719738' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7474562110834719738'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/7474562110834719738'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/05/functional-programming-beer-in-evening.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-2309683335820187906</id><published>2007-06-11T00:04:00.001+01:00</published><updated>2008-05-07T15:39:37.973+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='functional programming'/><category scheme='http://www.blogger.com/atom/ns#' term='haskell'/><category scheme='http://www.blogger.com/atom/ns#' term='high performance computing'/><category scheme='http://www.blogger.com/atom/ns#' term='erlang'/><category scheme='http://www.blogger.com/atom/ns#' term='analytics'/><title type='text'>Skillsets for the HFF Future</title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(255, 102, 0);"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;So which languages are going to succeed in the world of High Frequency Finance? Well you can bet your bottom dollar it's not going to be C# or C++. Both generate buggy and leaky solutions and are too reliant on third party libraries of unknown veracity. You can also rule out the raft of scripting languages - no matter how much the developers like them: Perl, Python, Ruby et al have good geek factor, however they don't cut it in production systems.&lt;br /&gt;&lt;br /&gt;So we're left with C and the functional languages. C is considered as a weird throwback to the 70's by most nascent programmers. What most of them do not realise is that the C# CLR, Java Virtual Machine (parts of), Ruby, Perl, Python, Apache, Linux, Solaris, C++ etc etc are all written in C. The main reason for this is performance, simplicity, robustness. C has it's share of problems, but in general it's a fairly good language.&lt;br /&gt;&lt;br /&gt;So, why are all the quantitative libraries in Investment Banks written in C++? And why are they mostly single threaded? The answer is hubris on the part of the programmers and, as previously outlined,  the difficulty in coding thread safe libraries.&lt;br /&gt;&lt;br /&gt;Well, times  have changed I'm afraid. C++ has to die because it does not translate into hardware - a route where tremendous performance gains are to be had. C is looking weak in light of the scalability models which can take advantage of multi-core within the functional languages. The future in the short term is C but watch for the rise of Erlang and Haskell. Their time has come.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;script src="http://www.google-analytics.com/urchin.js" type="text/javascript"&gt;&lt;br /&gt;&lt;/script&gt;&lt;br /&gt;&lt;script type="text/javascript"&gt;&lt;br /&gt;_uacct = "UA-2094522-1";&lt;br /&gt;urchinTracker();&lt;br /&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3778948-2309683335820187906?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/2309683335820187906/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=2309683335820187906' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2309683335820187906'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/2309683335820187906'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/skillsets-for-hff-future-so-which.html' title='Skillsets for the HFF Future'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-4045397707606501115</id><published>2007-06-10T16:50:00.000+01:00</published><updated>2007-06-10T17:22:38.044+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='categorisation'/><category scheme='http://www.blogger.com/atom/ns#' term='social network analysis'/><category scheme='http://www.blogger.com/atom/ns#' term='news analysis'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(255, 102, 0); font-family: arial;"&gt;News Analysis for  Program Trading&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(255, 102, 0); font-family: arial;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;As previously posted, I'm writing a paper on &lt;a href="http://enhyper.blogspot.com/2007/05/or49-keynote-speech-in-knowledge_31.html"&gt;news based program trading&lt;/a&gt; for the KM stream at the Operational Research Society's Annual Conference in September. This paper is the culmination of many years research and interest in the area of new analysis and I hope to show that the application of statistical techniques combined with visualisation can lead to an effective intelligence system which solves some of the conundrums facing traders, and for that matter, intelligence analysts.&lt;br /&gt;&lt;br /&gt;The goal is to greatly shorten the time to disseminate events to the people who need to consume them, allowing them to act on this information. However, there's also an intention to analyse the likely outcome of this interaction and put in place a strategy to take advantage of this event. Another hypothetical outcome is that event "signatures" will be recognised and effects correlated in different sectors.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 102, 0);"&gt;News Analysis&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;The first goal is to simplify the elements of news which we will analyse. To do this, I propose to model the way that people tend to read newspapers and select stories which interest them. Some read from front to back, others select favourite sections first, others, and I include myself here, read from back to front.&lt;br /&gt;&lt;br /&gt;When we read, the first element to be considered is either the title or a picture. The writer of the article has to aphoristically state the contents of the news in an attempt to get the readers interest.&lt;br /&gt;The title also contains other information like people, places, sectors, amounts, therefore this is the key piece which is used for presentation to the end user.&lt;br /&gt;&lt;br /&gt;The rest of the story consists of a series of sentences arranged into paragraphs. Within the story will also be the information we are interested in. The relativity of people can be used to build a Social Network Analysis graph based on proximity. If two people are mentioned in the same sector (e.g. FX trading) they are related. If they are mentioned in the same publication they are related more closely. The same story, closer still. Same paragraph, even closer. Same sentence, the closest. From this we can draw a graph showing the individuals "social network". There's a very good example of this at &lt;a href="http://www.namebase.org"&gt;www.namebase.org&lt;/a&gt; where you can perform useful searches on people involved in the intelligence world from their appearance in related publications.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Topographical Mapping&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;News also contains physical places. Mapping individuals, companies, sectors, amounts to physical location  can  reveal  useful information and is a technique much used in policing.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 102, 0); font-weight: bold;"&gt;Categorisation&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Categorisation is something humans do every day and is fundamental to our heuristic judgement. Humans are very good at it, however, what they're not so good at is dealing with something which falls into multiple categories.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;To be continued shortly...&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;&lt;span style="color: rgb(255, 102, 0); font-family: arial;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&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/3778948-4045397707606501115?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/4045397707606501115/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=4045397707606501115' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4045397707606501115'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/4045397707606501115'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/06/news-analysis-for-program-trading-as.html' title=''/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-17814938559415532</id><published>2007-06-10T09:46:00.001+01:00</published><updated>2008-05-07T15:41:25.351+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='high performance computing'/><category scheme='http://www.blogger.com/atom/ns#' term='logging'/><category scheme='http://www.blogger.com/atom/ns#' term='asynchronous'/><title type='text'>The Case for Asynchronous Logging</title><content type='html'>&lt;span style=";font-family:arial;font-size:130%;"  &gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;It is common practise for federated systems to maintain seperate logfiles to assist in fingerpointing should an error in production occur. However, this duplication of effort is  unsustainable in the world of High Frequency Finance (HFF) where messaging volumes are approaching the 400K messages per second leading to a rethink and perhaps a spirit of cooperation between data sinks and sources.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I propose that it's time to abrogate responsibility to one party not both, to log asynchronously. Deciding who carries the responsibility however, is not obvious. To understand the problem, lets look at the issues involved (or if you're of the half-empty glass persuasion - who gets the blame). Here's an example of a possible route between two applications:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul  style="font-family:arial;"&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Memory/Disk/SAN&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Sender Application&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Application proxy&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;TCP/IP Stack&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Software Firewall&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Hardware NIC&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Network infrastructure (various routers/switches/firewalls, lan/wan etc)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Receivers NIC&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Software Firewall&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;TCP/IP Stack&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Application proxy&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Receiver Application&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Memory/Disk/SAN&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;As you can see, there's quite a log to go wrong. Lets now analyse where to perform the logging.&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;" &gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Sender Logging&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If we rely on the sender, there's the immediate advantage that the sender will have to account for the log file space, access control and maintenance. However, from a consumer's point of view - that means there is a lack of control and potentially the case where you require a log and it's been deleted or is offline. From an audit point of view, you have increased the external dependency and hence the risk.&lt;br /&gt;&lt;br /&gt;From the senders perspective, consumer lifecycle mangement also becomes slighty more difficult as you now have to poll your customers to see if they are still consuming your data, as it's not unknown for applications to be turned off without turning the feeds off due to lack of knowledge on who to contact.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;font-size:100%;"  &gt;Receiver Logging&lt;/span&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;font-family:arial;" &gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;With receiver logging, we have, effectively, a forensic record of the transfer across the stack and have control over the logfile lifecycle. It seems strange to state the obvious, but for higher performance, you should log to local disk, not NFS or SAN storage then back up the log files to resiliient storage.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Service Level Monitoring&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;A nice addition is to write service level monitoring as part of our productionised system. In this way you can monitor the normal performance of the system and build a predictive capability on applicaiton performance.&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0);font-family:arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;Conclusion&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(204, 102, 0);"&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;Asynchronous logging has the potential to save considerable disk space and processor time whilst reducing maintenance overhead. The receiver/data sink is the right place to log as it tests the circuit between server and receiver and puts the management of log files in the domain of the application which is where it belongs from a resource, audit and service level management perspective.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&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/3778948-17814938559415532?l=enhyper.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://enhyper.blogspot.com/feeds/17814938559415532/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=3778948&amp;postID=17814938559415532' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/17814938559415532'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3778948/posts/default/17814938559415532'/><link rel='alternate' type='text/html' href='http://enhyper.blogspot.com/2007/05/case-for-asynchronous-logging-it-is.html' title='The Case for Asynchronous Logging'/><author><name>Graeme Burnett</name><uri>http://www.blogger.com/profile/09245381846175594181</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://bp1.blogger.com/_G86K0wbY_rs/SCMIrXVfhuI/AAAAAAAAAEg/B2E2GAJ6MlE/S220/enhyperlogo.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3778948.post-3021230375513298547</id><published>2007-06-09T13:18:00.000+01:00</published><updated>2007-06-09T13:34:38.624+01:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='geek food'/><category scheme='http://www.blogger.com/atom/ns#' term='Indian Cookery'/><title type='text'></title><content type='html'>&lt;span style="font-weight: bold;font-family:arial;font-size:130%;"  &gt;&lt;span style="color: rgb(204, 0, 0);"&gt;Parsi Lamb&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;this is a fantastic curry and really easy to make. It looks surprisingly ordinary - but the results are fantastic. I've presented the recipe in a way which is designed for the cook - dividing the recipe into lots in sequence. I find this easier than rereading the list of ingredients and the recipe to find out what goes where.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;font-family:arial;font-size:100%;"  &gt;Lot 1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4 Large Onions sliced&lt;br /&gt;4 Green Cardoman pods&lt;br /&gt;3 cloves&lt;br /&gt;4 cm cinnamon stick&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0); font-weight: bold;font-family:arial;" &gt;Lot 2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;50ml of water&lt;br /&gt;2 garlic cloves&lt;br /&gt;thumb sized piece of ginger&lt;br /&gt;(or two tablespoons of ginger and garlic paste)&lt;br /&gt;1.5 tsp of chilli powder&lt;br /&gt;1 tbsp ground cumin (I freshly grind mine)&lt;br /&gt;1.5 tsp of turmeric&lt;br /&gt;1.5 tsp salt&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);font-family:arial;" &gt;Lot 3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3 tomatoes chopped&lt;br /&gt;750g of cubed leg of lamb&lt;br /&gt;1 dried red chilli&lt;br /&gt;4 green chillies sliced lengthways&lt;br /&gt;200ml water&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(204, 0, 0);font-family:arial;" &gt;Lot 4 &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3 tbsp chopped fresh cori
